观察者模式

什么是观察者模式:
    Observer模式是行为模式之一,它的作用是当一个对象的状态发生变化时,能够自动通知其他关联对象,自动刷新对象状态。
    发生变化的对象是被观察者。其他对象是观察者
角色:
   Subject(被观察者):
        当被观察者的状态改变时,需要通知观察者队列中的对象。(被观察者需要维护一个观察者列表)
    ConcreateSubject(被观察者的具体实现)
    Observer(观察者):
        接口或者抽象类,当被观察者的状态发生变化时,Observer对象将通过callback函数得到通知。
    ConcreateObserver(观察者的具体实现):完成具体的逻辑。
Observable类:
    java.uitl包下有个Observerable接口,如果一个对象需要被观察,就必须继承Observerable类。
    notifyObervers()方法
        Observerable类中有一个notifyObervers()方法。被观察者通过调用这个方法来通知观察者们。
    addObserver(Observer observer)方法:
        该方法用于注册观察者。
    hasChanged()方法:
        用于判断被观察者是否发生变化,
    setChanged()方法:
        触发被观察者的改变,这样NotifyObservers()方法发出通知后观察者的回调就会被调用,然后注册后的观察者就会得到通知。
Observer接口:
    具体的观察者需要实现Observer接口。Observer接口中有个update方法,当发生变化时:该方法会触发。
类图:
应用:
    监听事件驱动的程序。
    监听对象状态。
    实现pub-sub模式。

 

posted on 2020-03-30 21:25  笑明子  阅读(122)  评论(0编辑  收藏  举报

导航