在《JavaScript设计模式》这一本书的Publish/Subscribe模式小节中有这么一段话,
这是要入门了解的一个比较简单的设计模式,但同时也是最强大的设计模式之一
。
Observer模式和Publish/Subscribe模式非常相似,但是它们之间还是有不同之处。
Observer模式要求希望接收到主题通知的观察者必须订阅内容改变的事件。
Publish/Subscribe模式使用了一个主题/事件通道,这个通道介于希望接收到通知(订阅者)的对象和激活事件的对象(发布者)之间。该事件系统允许代码定义应用程序的特定事件,这些事件可以传递自定义参数,自定义参数包含订阅者所需的值。其目的是避免订阅者和发布者之间产生依赖关系。
下面用# PubSubJS写一个用例:
const pubsub = require('pubsubjs').create();
pubsub.subscribe('updateStatus', (context, data) => {
console.log('QQ状态: ', data.status);
});
pubsub.publish('updateStatus', null, {status: 'online'});
网友评论