观察者模式

来源:互联网 发布:网络主播能做多久 编辑:程序博客网 时间:2024/06/04 20:03

观察者模式是一个1对多的关系,也就是1个对象发生改变,其他多个依赖对象都会收到通知。

具体例子,就像事件处理一样,一个按键或点击会触发好几条事务共同处理。

观察者模式:

1、主题接口(被观察者接口)

interface Subject{    void registerObserver();// 注册观察者    void removeObserver();// 移出观察者    void notifyObserver();// 通知观察者,即调用观察者update()方法}

2、观察者接口

interface Observer{    void update();// 观察者接收到通知,调用该方法更新当前观察者}

3、具体的主题是一个实现了主题接口的类。

4、具体的观察者是一个实现了观察者接口的类。注意要使这个类和某个主题进行关联,才能进行接下来的根据主题状态更新观察者,关联就是要调用主题的registerObserver()方法。

JDK为我们提供了观察者模式:

import java.util.Observable;// 主题类import java.util.Observer;// 观察者接口----void update(Observable o, Object arg);// 接口中的方法

其中Observable中有个setChange()方法,作用时可以灵活调整每次状态改变时是否需要通知观察者。