写点什么

观察者模式的基础原理

作者:阿泽🧸
  • 2022-10-24
    北京
  • 本文字数:753 字

    阅读完需:约 2 分钟

观察者模式的基础原理

观察者模式是常用的设计模式之一,是所有 Java 工程师必须掌握的设计模式。观察者模式也叫发布订阅模式。


此模式的角色中有一个可观察的主题对象 Subject,有多个观察者 Observer 去关注它。当 Subject 的状态发生变化时,会自动通知这些 Observer 订阅者,令 Observer 做出响应。


在整个观察者模式中一共有 4 个角色:Subject(抽象主题、抽象被观察者)、Concrete Subject(具体主题、具体被观察者)、Observer(抽象观察者)以及 ConcreteObserver(具体观察者)。


观察者模式的 4 个角色以及它们之间的关系如图所示。

观察者模式中 4 个角色的介绍如下:

  1. Subject(抽象主题):Subject 抽象主题的主要职责之一为维护 Observer 观察者对象的集合,集合里的所有观察者都订阅过该主题。Subject 抽象主题负责提供一些接口,可以增加、删除和更新观察者对象。

  2. ConcreteSubject(具体主题):ConcreteSubject 用于保持主题的状态,并且在主题的状态发生变化时给所有注册过的观察者发出通知。具体来说,ConcreteSubject 需要调用 Subject(抽象主题)基类的通知方法给所有注册过的观察者发出通知。

  3. Observer(抽象观察者):观察者的抽象类定义更新接口,使得被观察者可以在收到主题通知的时候更新自己的状态。

  4. ConcreteObserver(具体观察者):实现抽象观察者 Observer 所定义的更新接口,以便在收到主题的通知时完成自己状态的真正更新。


RxJava 的操作符实质上是为了方便数据流的操作,是 RxJava 为 Observable 主题所定义的一系列函数。RxJava 的操作符按照其作用具体可以分为以下几类:

  1. 创建型操作符:创建一个可观察对象 Observable 主题对象,并根据输入参数弹射数据。

  2. 过滤型操作符:从 Observable 弹射的消息流中过滤出满足条件的消息。

  3. 转换型操作符:对 Observable 弹射的消息执行转换操作。

  4. 聚合型操作符:对 Observable 弹射的消息流进行聚合操作,比如统计数量等。


发布于: 刚刚阅读数: 6
用户头像

阿泽🧸

关注

还未添加个人签名 2020-11-12 加入

还未添加个人简介

评论

发布
暂无评论
观察者模式的基础原理_观察者模式_阿泽🧸_InfoQ写作社区