持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第28天,点击查看活动详情
观察者(Observer):又被称作发布-订阅者模式或消息机制,定义了一种依赖关系,解决了主体对象与观察者之间功能的耦合。
观察者模式类似于提供一个全球的卫星,在全局代码中做到以个观测的作用,比如出现某些需求,需要将三个不同开发者开发的模块进行某些联系,那么三个模块已经成型的情况下,就不可能再去将三个模块结合成同一个模块,如果要进行模块间的数据或者信息交流,可以在全局声明一个观察者模式。
在全局声明一个观察者并放在闭包中,并且使用立即执行函数,在观察者对象中,我们需要声明三个简单的接口,分别是注册接口,发布接口,移除接口,并且创建一个消息队列
注册接口主要是维护一个执行队列,接受俩个参数,执行事件的类型和执行事件,判断需要观察的某个事件类型是否存在,如果存在则将事件推入的到消息队列中。
发布接口主要也是接受俩个参数,第一个参数是需要执行的消息类型,第二个参数是需要执行的函数的传参,在发布接口中,首先会判断消息是否已经注册,之后变量消息动作,依次执行注册消息的对应函数序列。
最后是对消息的注销移除,同样需要对要删除的类型判断是否存在,然后再从最后的消息开始遍历,在消息动作序列中移除响应的动作。