行为型-观察者模式
# 设计模式
- 设计模式要干的事情就是解耦。
- 创建型模式是将创建和使用代码解耦。
- 结构型模式是将不同功能代码解耦
- 行为型模式是将不同的行为代码解耦。
# 什么是观察者模式?
- Publish-Subscribe Design Pattern
- 在对象之间定义一个一对多的依赖,当一个对象状态改变的时候,所有依赖的对象都会自动收到通知。
- 一般情况,被依赖的对象叫做被观察者(Observable),依赖的对象叫作观察者(Observer)。
- 实际开发过程中会有很多叫法,但都大同小异:Subject-Observer、Publisher-Subscriber、Producer-Consumer、EventEmitter-EventListener、Dispatcher-Listener。
- 根据应用场景的不同:
- 有同步阻塞的实现方式,也有异步非阻塞的实现方式;
- 有进程内的实现方式,也有跨进程的实现方式。
# 应用场景
- 邮件订阅、RSS Feeds
- 使用消息中间件(观察者和被观察者彻底解耦)
- 用户注册事件
- 发送邮件
- 发送站内信
- 发送短信等方式
# 拓展问题
# 对比“生产者 - 消费者”模型和观察者模式的区别和联系
- 联系
- 都在解决一种行为会导致另一种行为的方式(也就是依赖者和被依赖者)。
- 区别
- “生产者-消费者”模型使用异步模型,使得生产者和消费者无须关系对应关系。
- 观察者模式既可以使用同步方式也可以使用异步方式,观察者需要提前注册到被观察者里面,等待通知。
上次更新: 2020/10/18, 14:10:00