设计模式第十五篇-行为型模式【观察者模式】

2018-06-24  本文已影响4人  做个快乐的代码哥

设计模式案例分析-github

一、什么是观察者模式?

     定义:    当一个对象的状态发生改变时,所有依赖于它的订阅者都会收到通知。

     通俗理解:   类似当你需要买报纸的时候,你不需要天天跑去报刊店去买,只需要你购买了月报,送报员就会每天报纸送到你家,相当于报纸是被观察者,你是观察者,及当有新报纸出来(对象状态改变),报刊员就会把报纸送到你手上(订阅者都会收到通知)

     应用场景?

           场景一:关联行为场景

           场景二:事件多级触发场景

           场景三:跨系统消息交互场景(例如:消息队列、事件总线)

                Android开发:RxJava、Eventbus等等…即 需要监听某个对象的时候,并且该对象状态改变,外部需要去更新。 

二、角色划分?

    角色一: 抽象观察者

    角色二: 具体观察者

    角色三: 抽象被观察者

    角色四: 具体被观察者

三、实现?

    //角色一: 抽象观察者

public interface Observer {

    void update(Observerable observerable);

}

// 角色二: 具体观察者

public class ConcreateObserverAimplements Observer {

    @Override    

    public void update(Observerable observerable) {

        Log.i("zqr", "A收到通知");

    }

}

// 角色三: 抽象被观察者

public interface Observerable {

// 添加观察者

    void addObserver(Observer observer);

    // 撤销观察者

    void removeObserver(Observer observer);

    // 通知观察者改变

    void notifyChange();

}

// 角色四: 具体观察者

public class ConcreateObserverAimplements Observer {

@Override

    public void update(Observerable observerable) {

Log.i("zqr", "A收到通知");

    }

}

上一篇下一篇

猜你喜欢

热点阅读