一、观察者模式的理解
观察者模式:一个对象(称为subject)维持一系列依赖于它的对象(称为observer),将有关状态的任何变更自动通知给它们(观察者)。
二、发布/订阅模式的理解
发布/订阅模式:基于一个主题/事件通道,希望接收通知的对象(称为subscriber)通过自定义事件订阅主题,被激活事件的对象(称为publisher)通过发布主题事件的方式被通知。
上代码
1、观察者模式的应用
class Observer {
constructor(name){
this.name = name;
}
update({ type, info }){
if(!type) {
return;
}
switch (type) {
case 'add':
this.addEvent();
break;
case 'minus':
this.minusEvent();
}
}
addEvent() {
console.log(`${this.name}add event`)
}
minusEvent() {
console.log(`${this.name}minus event`)
}
}
class Subject {
constructor(){
this.subscribeList = []
}
addObserver(observer){
this.subscribeList.push(observer)
}
notify(task){
this.subscrib