观察者模式:
Observer模式是行为模式之一,它的作用是当
一个对象的状态发生变化时,能够自动通知其他
关联对象,自动刷新对象状态。
Observer模式的典型应用:
- 侦听事件驱动程序设计中的外部事件
- 侦听/监视某个对象的状态变化
- 发布者/订阅者(publisher/subscriber)模型中,当一个外部事件(新的产品,消息的出现等等)被触发时,通知邮件列表中的订阅者
观察者模式的角色和职责:
1、被观察者:被观察的对象。当需要被观察的状态发生变化时,需要通知队列中所有观察者对象。Subject需要维持(添加,删除,
通知)一个观察者对象的队列列表。
需要继承Observable;
在程序中调用this.setChanged()方法,设置被观察者状态改变;
调用this.notifyObservers()方法,向观察者通信;
2、观察者:接口或抽象类。当Subject的状态发生变化时,Observer对象将通过一个callback函数得到通知。
它是一个接口,需要实现Observer,并且需要重写update()方法,实现自己的方法体;也就是当得到通知的时候,实现自己的
业务逻辑处理。
3、主main方:
1、创建被观察者对象;
2、注册观察者;
即调用addObserver(参数:观察者的实例对象)方法,即可;