美文网首页
01观察者模式

01观察者模式

作者: jackLee | 来源:发表于2016-02-25 16:14 被阅读17次

观察者模式类图

Paste_Image.png
  • 观察者模式也称监听器模式
  • 当我们对某一个对象的某一些状态感兴趣时,希望在任何时刻获取其状态的改变
  • 比如数据的改变,网络状态的改变,此时,就需要使用观察者模式。
    --Observer pattern is one of the behavioral design pattern. Observer design pattern is useful when you are interested in the state of an object and** want to get notified whenever there is any change. **

观察者模式构成要素

  • Subject:被观察者,一般来说被观察者自身具有某种属性状态,其状态的改变对我们的应用会有不同业务逻辑上的影响。
  • 比如Android中的UI控件:一个Button,一个区内的WiFi连接,容器内的数量变动
  • Subject contains a list of observers to notify of any change in it’s state, so it should provide methods using which observers can register and unregister themselves. Subject also contain a method to notify all the observers of any change and either it can send the update while notifying the observer or it can provide another method to get the update.

  • Subject包含了一些观察者(监听者),并提供一些接口供add和removeListener,另外包含一些供客户端使用的方法通知各listener其自身状态发生了改变。

  • Observer||Listener:用于监听subject的一些状态,比如数据的增加,数据的修改,数据的删除

  • Observer||Listener一般自定义一个Listener的接口,包含了若干个想监听的方法,在客户端使用匿名内部类的方式add进subject中去。

例子:
subject.class{
private Data mdata;//01
private ArrayList<Listener> mListeners;//02
//observer.interface: //03
private interface Listener{

public void onDataAdded();
public void onDataRemoved();
public void onDataChanged();
....other methods.....
}
//following methods are provided for Observers;//04
public void addListener(Listener l){};
public void removeListener(Listener l){};
public void clearListeners(){};

//following methods are used to notify observers of change of subject dataSteted://05
public void DataAdd();

public void DataChanged();

public void DataRemoved();

}
标注:
--01:表示subject被观察者拥有的数据
--02:表示一个容器用于装载Observer
--03:定义了一个内部接口Observer,包含了若干个对subject的状态的监听
--04:subject提供的一些接口:供客户端添加和移除Observer
--05:供客户端调用当状态发生改变时通知所有的Observer

相关文章

  • 11.9设计模式-观察者模式-详解

    设计模式-观察者模式 观察者模式详解 观察者模式在android中的实际运用 1.观察者模式详解 2.观察者模式在...

  • RxJava基础—观察者模式

    设计模式-观察者模式 观察者模式:观察者模式(有时又被称为发布(publish )-订阅(Subscribe)模式...

  • 前端面试考点之手写系列

    1、观察者模式 观察者模式(基于发布订阅模式) 有观察者,也有被观察者。 观察者需要放到被观察者列表中,被观察者的...

  • RxJava 原理篇

    一、框架思想 观察者模式观察者自下而上注入被观察者被观察者自上而下发射事件观察者模式 装饰器模式自上而下,被观察者...

  • 观察者模式

    观察者模式概念 观察者模式是对象的行为模式,又叫作发布-订阅(publish/subscrible)模式。 观察者...

  • 设计模式-观察者模式

    观察者模式介绍 观察者模式定义 观察者模式(又被称为发布-订阅(Publish/Subscribe)模式,属于行为...

  • 观察者模式

    观察者模式 观察者模式的定义 观察者模式(Observer Pattern)也叫做发布订阅模式(Publish/s...

  • iOS设计模式之观察者模式

    观察者模式 1、什么是观察者模式 观察者模式有时又被称为发布(publish)-订阅(Subscribe)模式、模...

  • 观察者模式和发布订阅模式区别

    观察者模式 所谓观察者模式,其实就是为了实现松耦合(loosely coupled)。 在观察者模式中,观察者需要...

  • 01.观察者模式

    01.观察者模式 1、认识观察者模式: 我们看看报纸和杂志的订阅是怎么回事: (1)报社的业务就是出版报纸。 (2...

网友评论

      本文标题:01观察者模式

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