观察者模式

作者: dd85bd3cabef | 来源:发表于2017-05-16 14:57 被阅读1次

观察模式的一般形式

利用java默认observable接口


  • setChanged方法用于标记是否已经发生了改变,负责维护一个Flag。
  • 在notifyObserve方法中,判断Flag后,依次对所有oberser进行更新。
  • notify()的重載代表“pull”,而notify(object arg)代表的方式为“push”。push是观察主题主动推送数据给观察者,而pull是观察者通过调用观察主题的get系列方法获得数据
  • 观察者的update()方法需要observe o 和 object arg两个参数来表示从哪个主体,Push来的数据

观察主题

观察者

observable具有极大的缺陷,在java中,它被定义成一个类,而非接口,所以想要有一个具有Observable和其他类功能的类就很难。

java中很多的观察者都以Listener的形式呈现

设计原则的体现:

  • 找出程序中变化的方面,然后将其和固定不变的方面分离
    在观察者模式中,会改变的是主题的状态和观察者的数目和类型。这个模式中,改变观察者并不会改变主体。
  • 针对接口编程,而不针对实现编程
    主题和观察者都使用接口。观察者利用主题的接口注册和注销,而主题通过观察者的接口通知观察者进行改变。
  • 多用组合,少用继承
    通过组合将很多观察者组合进主题。观察者的行为对象并不是继承来的,而是通过组合,组合进观察者类的。

相关文章

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

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

  • RxJava基础—观察者模式

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

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

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

  • RxJava 原理篇

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

  • 观察者模式

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

  • 设计模式-观察者模式

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

  • 观察者模式

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

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

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

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

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

  • RxJava(二)

    一、观察者模式 1.1、传统的观察者模式 1.2、RxJava 的观察者模式 区别传统的观察者模式是一个 Obse...

网友评论

    本文标题:观察者模式

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