设计模式--------订阅/发布模式 (观察者)

Posted zhouyideboke

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式--------订阅/发布模式 (观察者)相关的知识,希望对你有一定的参考价值。

pub/sub 这个应该?家?到最?的设计模式了,
 
class Event{
constructor(){
this.callbacks = {}
}
$off(name){
this.callbacks[name] = null
}
$emit(name, args){
let cbs = this.callbacks[name]
if (cbs) {
cbs.forEach(c=>{
c.call(this, args)
})
}
}
$on(name, fn){
(this.callbacks[name] || (this.callbacks[name] = [])).push(fn)
}
}
let event = new Event()
event.$on(‘event1‘, function(arg){
console.log(‘事件1‘,arg)
})
event.$on(‘event1‘, function(arg){
console.log(‘??个时间1‘,arg)
})
event.$on(‘event2‘, function(arg){
 
console.log(‘事件2‘,arg)
})
event.$emit(‘event1‘,{name:‘开课吧‘})
event.$emit(‘event2‘,{name:‘全栈‘})
event.$off(‘event1‘)
event.$emit(‘event1‘,{name:‘开课吧‘})
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

以上是关于设计模式--------订阅/发布模式 (观察者)的主要内容,如果未能解决你的问题,请参考以下文章

模式发布与订阅模式和观察者模

发布订阅模式实现及发布订阅者模式与观察者模式的不同

发布-订阅者模式 (观察者模式)

设计模式--观察者模式(发布订阅模式)

设计模式-观察者模式 发布/订阅模式

EventBus发布-订阅模式 ( EventBus 组成模块 | 观察者模式 )