美文网首页
设计模式第十五篇-行为型模式【观察者模式】

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

作者: 做个快乐的代码哥 | 来源:发表于2018-06-24 14:10 被阅读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收到通知");

        }

    }

    相关文章

      网友评论

          本文标题:设计模式第十五篇-行为型模式【观察者模式】

          本文链接:https://www.haomeiwen.com/subject/vdyjyftx.html