歡迎訪問我的個人博客:http://www.xiaolongwu.cn
簡單列子
下面是實現發佈—訂閱模式的步驟:
1、先要指定好誰充當發佈者(比如售樓處)
2、然後給發佈者添加一個緩存列表,用於存放回調函數以便通知訂閱者(售樓處的花名冊)
3、最後發佈消息的時候,發佈者會遍歷這個緩存列表,依次觸發裏面存放的訂閱者回調函數(遍歷花名冊,挨個發短信)
// 定義訂閱發佈模式
var publisher = {}; //定義發佈者
publisher.list = []; // 定義發佈者的緩存列表,來存放訂閱者的回調函數
publisher.on = function (fn){ // 添加訂閱者
this.list.push(fn); //訂閱者的回調函數添加進緩存列表
}
publisher.trigger = function(){
for(var i = 0,fn;fn = this.list[i++];){
fn.apply(this,arguments);
}
}
// 使用
publisher.on(function(name){
console.log('leon1收到' + name);
});
publisher.on(function(name){
console.log('leon2收到' + name);
});
publisher.trigger("哈哈");
上面這個是最簡單的例子
未完待續。。。。
參考文獻: https://www.cnblogs.com/tugenhua0707/p/4687947.html
我的github資源地址:JavaScript設計模式–觀察者模式(發佈者-訂閱者模式)
我的個人博客地址:http://www.xiaolongwu.cn
我的CSDN博客地址:https://blog.csdn.net/wxl1555
如果您對我的博客內容有疑惑或質疑的地方,請在下方評論區留言,或郵件給我,共同學習進步。