观察者模式和发布/订阅模式的区别是:
- ,最大的区别是调度的地方。虽然两种模式都存在订阅者和发布者(具体观察者可认为是订阅者、具体目标可认为是发布者),但是观察者模式是由具体目标调度的,而发布/订阅模式是统一由调度中心调的,所以观察者模式的订阅者与发布者之间是存在依赖的,而发布/订阅模式则不会。
- 在发布订阅模式中,组件是松散耦合的,正好和观察者模式相反。
2.观察者模式实现,最关键的是一个type用数组来存,当这个type发生时,对应这个数组的所有函数都会被执行
- 2.1对观察者和被观察者进行建模:
3.发布/订阅模式实现
发布/订阅在JavaScript的生态系统中非常合适,主要是因为作为核心的ECMAScript 实现是事件驱动的。尤其是在浏览器环境下更是如此,因为DOM 使用事件作为其主要的用于脚本的交互API。
image.png
网友评论