观察者模式
事件处理模型,对于事件处理模型,一般使用观察者和责任链模式。
定义:观察者模式是一种行为设计模式, 允许你定义一种订阅机制, 可在对象事件发生时通知多个 “观察” 该对象的其他对象。
观察者模式角色
- 发布者:向其他角色发送值得关注的事件。事件会在发布者自身状态或执行特定行为后发生。
- 订阅者:接口声明了通知接口。在绝大多数情况下,该接口只包含一个update方法。该方法可以拥有多个参数,使发布者能在更新时传递事件的详细信息。
- 具体订阅者:可以执行一些操作来回应发布者的通知,所有具体订阅者都实现了同样的接口,因此发布者不需要与具体类相耦合。
- 客户端:会分别创建发布者和的订阅者对象,然后为订阅者注册发布和更新。
适用场景
- 当一个对象状态的改变需要改变其他对象, 或实际对象是事先未知的或动态变化的时,可使用观察者模式。
- 当应用中的一些对象必须观察其他对象时,在有限时间内或特定情况下使用该模式。
订阅列表是动态的, 因此订阅者可随时加入或离开该列表。
talk is cheap,show me your code.
观察者模式demo