观察者模式也称”发布-订阅”模式,它的作用就是当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知,自动刷新对象状态
举个生活比较常见常见的例子,比如你去面试之后,面试官看你表现不错,最后会跟你要联系方式,以便之后可以联系你。在这角色扮演当中,你就是“订阅者”,面试官就是“发布者”。
那么发布订阅模式是咋实现的呢?
思路
1. 给定一个发布者
2. 面试者将联系方式给发布者
3. 发布者的一个列表有各种职位(web端的,java 的),里面记载回调函数以便通知这些面试者
4. 最后发布消息的时候,会遍历这个列表的职位的回调函数,告诉面试者面试这个职位是通过还是不通过
5. 如果面试者取消了订阅,那么将回调函数和之前的回调函数作对比,如果相等,就将这个面试者的上班通知去掉
var Event = (function() {
var events = {}; //发布者
//subscribe也就是订阅,post 代表面试者要面的职位,callback表示为回调函数