发布订阅模式

259 阅读1分钟

概念

发布订阅模式,也叫Pub/Sub模式,是一种设计模式,允许对象(发布者)向多个对象(订阅者)发送消息,而发布者和订阅者之间不需要显式地相互引用。

这样可以降低耦合,提高系统的可维护性。

简单实现发布订阅模式

发布订阅的核心是一个事件中心,用来管理事件和订阅者的回调函数。通常,这个事件中心会有一个对象来存储不同事件对应的回调函数数组。即下面实现

image.png

订阅机制实现

image.png

消息发布机制

image.png

取消订阅实现

image.png

这样就实现了不同部分之间的通信,而它们之间不需要直接依赖。

使用案例

先实例化一个事件中心并定义一个订阅者的类 image.png

然后创建出a和b两个订阅者,并订阅了【新闻】事件,所以【新闻】如果发布消息,a和b会触发回调 image.png

在这里取消订阅需要用到存储前面函数实例,即aCallback,传给取消订阅的方法用来作为过滤的标准(需要注意的是,取消订阅时传的回调一定要是同一个函数实例,不然无法取消,所以需要在订阅前存下回调) image.png

结果展示

image.png