一、观察者模式引入
观察者模式(Observer 模式)应该可以说是应用多、影响广的模式之一,因为 Observer 的一个实例 Model/View/Control(MVC)结构在系统开发架构设计中有着很重要的地位和意义,MVC实现了业务逻辑和表示层的解耦。 Observer 模式也是软件开发过程中必须要掌和使用的模式之一。
Observer 模式要解决的问题为:建立一个一(Subject)对多(Observer)的依赖关系,并且做到当“一”变化的时候,依赖这这“一”的多也能够同步改变。常见的一个例子就是:对同一组数据进行统计分析时候,我们希望能够提供多种形式的表示(例如以表格进行统计显示、柱状图统计显示、百分比统计显示等)。这些表示都依赖于同一组数据,我们当然需要当数据改变的时候,所有的统计的显示都能够同时改变。Observer 模式就是解决了这一个问题。
二、实现
观察者模式分为两个角色:观察者和监听者
观察者:
1.通知对于该事件感兴趣的监听者去处理
2.注册
监听者:处理事件
观察者模式典型的结构图为: