大家好,又见面了,我是你们的朋友全栈君。
发布订阅模式可以理解为:
用户关注一个了微信公众号(订阅),当公众号有内容更新时会推送(发布)给所有关注该公众号的用户。
废话不多说直接上代码(此demo仅帮助理解发布/订阅模式):
let Observable = {
observers:[], // 订阅者集合
addObserver:function (observer) { // 添加订阅者
this.observers.push(observer)
},
removeObserver:function (observer) { // 移除订阅者
let index = this.observers.indexOf(observer);
if(~index){
this.observers.splice(index,1);
}
},
notifyObservers:function (message) { // 向订阅者发布消息
for(let i = 0; i <= this.observers.length-1; i++){
this.observers[i](message);
}
}
};
function observer1(message){
console.log(`1---------${message}`);
}
function observer2(message){
console.log(`2---------${message}`);
}
function observer3(message){
console.log(`3---------${message}`);
}
// 添加订阅者
Observable.addObserver(observer1);
Observable.addObserver(observer2);
Observable.addObserver(observer3);
// 向订阅者发布(通知)消息
Observable.notifyObservers('hello');
// 移除订阅者
Observable.removeObserver(observer1);
Observable.notifyObservers('test');
输出结果为:
1---------hello
2---------hello
3---------hello
2---------test
3---------test
复制代码
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/107189.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...