观察者典型的事例就是监控器模型,在界面上安装监控器,界面作为观察者,监控器作为被观察者,当界面的部件有事件发生时,界面通知各个监听器,做出相应的反应。再举一个具体的事例:QQ信息的处理,当QQ有信息时,桌面上的好几个组件都会有反应,QQ头像闪动,消息数字加1...
这就是观察者模式,实现机制如下:
定义有一个观察者父类接口,被观察者父类接口,子类实现父类接口,一个观察者父类关联多个被观察者父类,观察者子类用容器包装被观察者,实现消息的通知,被观察者者根据自身性质处理消息。
代码实现如下
观察者父类代码:
被观察者父类代码:
观察者子类代码:
被观察者子类代码:
实现