摘要:出版商不同雜志的訂閱者數(shù)組添加訂閱這方法訂閱是觸發(fā)的方法和訂閱哪個類型的如果這個訂閱類型沒有,就新創(chuàng)建一個如果已經(jīng)存在了,就把訂閱觸發(fā)的方法加到訂閱數(shù)組里面刪除訂閱者出版只有發(fā)布者才能出版處理刪除或者出版的方法調(diào)用哪個訂閱者庫如果是出版的話
var publisher = {//出版商 subscribers:{//不同雜志的訂閱者數(shù)組 any : [] }, // 添加訂閱這方法 subscribe:function(fn,type){//訂閱是觸發(fā)的方法和訂閱哪個類型的 type = type || "any"; if(typeof this.subscribers[type] === "undefined"){//如果這個訂閱類型沒有,就新創(chuàng)建一個 this.subscribers[type] = []; } this.subscribers[type].push(fn);//如果已經(jīng)存在了,就把訂閱觸發(fā)的方法加到訂閱數(shù)組里面 }, // 刪除訂閱者 unsubscribe : function(fn,type){ this.visitSubscribers("unsubscribe",fn,type); }, // 出版 只有發(fā)布者才能出版 publish : function(publication,type){ this.visitSubscribers("publish",publication,type); }, //處理刪除或者出版的方法 visitSubscribers : function(action,arg,type){ var pubtype = type || "any", //調(diào)用哪個訂閱者庫 subscribers = this.subscribers[pubtype],// i, max = subscribers.length; console.log(subscribers) for(i=0;i
文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/85434.html
摘要:觀察者模式,是設計模式之一。即便如此,筆者仍精心準備了這篇博客,期望用最簡單的方式來介紹下該模式。這里有個小知識點提一下函數(shù)對象的屬性就是該函數(shù)名最后是思路是通過找到指定數(shù)組,然后對數(shù)組中的回調(diào)函數(shù)進行依次調(diào)用,達到發(fā)布的目的。 觀察者模式,是JavaScript設計模式之一。當然也不僅僅限于JavaScript這門語言,網(wǎng)上對該模式的介紹已是多如牛毛,而且講得各有特色各有心得。即便如...
摘要:發(fā)布訂閱者模式中,訂閱者是不知道也不關心事件是為什么觸發(fā),是由哪一個事件觸發(fā),只知道事件觸發(fā)時候,會告訴自己。然而,在發(fā)布訂閱模式中,發(fā)布者和訂閱者不知道對方的存在。在發(fā)布訂閱模式中,組件是松散耦合的,正好和觀察者模式相反。 概念 發(fā)布訂閱者模式,是javascript甚至大多數(shù)語言都有的語言模式,比較概念的解釋是, 訂閱者把自己想訂閱的事件注冊到調(diào)度中心,當該事件觸發(fā)時候,發(fā)布者發(fā)布...
摘要:發(fā)布訂閱者模式中,訂閱者是不知道也不關心事件是為什么觸發(fā),是由哪一個事件觸發(fā),只知道事件觸發(fā)時候,會告訴自己。然而,在發(fā)布訂閱模式中,發(fā)布者和訂閱者不知道對方的存在。在發(fā)布訂閱模式中,組件是松散耦合的,正好和觀察者模式相反。 概念 發(fā)布訂閱者模式,是javascript甚至大多數(shù)語言都有的語言模式,比較概念的解釋是, 訂閱者把自己想訂閱的事件注冊到調(diào)度中心,當該事件觸發(fā)時候,發(fā)布者發(fā)布...
摘要:模式定義觀察者模式定義對象間的一種一對多依賴關系,使得每當一個對象狀態(tài)發(fā)生改變時,其相關依賴對象皆得到通知并被自動更新。 觀察者模式 Laravel的Event事件系統(tǒng)提供了一個簡單的觀察者模式實現(xiàn),能夠訂閱和監(jiān)聽應用中發(fā)生的各種事件,在PHP的標準庫(SPL)里甚至提供了三個接口SplSubject, SplObserver, SplObjectStorage來讓開發(fā)者更容易地實現(xiàn)觀...
摘要:事件驅(qū)動編程是圖形用戶界面和其他應用程序例如應用程序中使用的主要范例,用于執(zhí)行某些操作來響應用戶輸入。我們來看一下事件驅(qū)動編程帶來的收益?,F(xiàn)在讓我們看看采用事件驅(qū)動編程方法如何實現(xiàn)上述相同的功能。 在這篇文章中我們將了解到什么是事件驅(qū)動編程以及在Laravel中如何開始構建一個事件驅(qū)動應用,同時我們還將看到如何通過事件驅(qū)動編程來對應用程序的邏輯進行解耦。 在開始之前,先說明一下這篇文章...
閱讀 3950·2021-11-16 11:50
閱讀 947·2021-11-11 16:55
閱讀 3672·2021-10-26 09:51
閱讀 872·2021-09-22 15:03
閱讀 3439·2019-08-30 15:54
閱讀 3272·2019-08-30 15:54
閱讀 2483·2019-08-30 14:04
閱讀 928·2019-08-30 13:53