1概述
发布-订阅模式,一种对象间一对多的依赖关系,当一个对象的状态发送改变时,所有依赖于它的对象都将得到状态改变的通知。
即订阅者将自己想要订阅的事件,在调度中心注册,当发布者发布该事件时,调度中心统一处理,触发该事件发送到订阅。类似于订阅自己想要的公众号,当公众号号主发送文章,由微信公众号平台统一调度转发到各个用户。
2 实现发布-订阅模式
首先定义调度中心及其缓存列表
on()订阅方法,用于在缓存列表注册订阅者的方法func,event作为区别订阅者想要订阅的事件,避免后期调度混乱。
emit()激活时,根据event事件标签,提取订阅者执行的函数,并将后续参数传入订阅者函数中
remove()取消订阅时
let channel= {
//定义调度中心
list:{
}, //定义缓存列表
//订阅方法
on(event,func){
//列表不存在,先创建再添加订阅者的函数
(this.list[event]||(this.list[event]=[])).push(func);
},