美文网首页
观察者模式是如何工作的?

观察者模式是如何工作的?

作者: JAVA加油 | 来源:发表于2023-08-27 08:03 被阅读0次

观察者模式(Observer Pattern)是一种软件设计模式,它用于在对象之间建立一种一对多的依赖关系,使得当一个对象的状态发生改变时,所有依赖于它的对象都能够自动收到通知并进行相应的更新。

观察者模式涉及以下几个角色:

主题(Subject):也称为被观察者或可观察者,它维护一组观察者对象,并提供方法来注册和删除观察者。主题通常需要维护一个状态(如数据),当状态发生变化时,会通知所有注册的观察者。

观察者(Observer):观察者是主题的依赖对象,它定义了一个接口或抽象类,用于接收主题的通知。观察者通过该接口或抽象类定义的方法来获取主题的状态更新,并进行相应的处理。

具体主题(Concrete Subject):具体主题是主题的具体实现,它维护主题的状态,并在状态发生改变时通知观察者。具体主题通常包含其他与状态相关的业务逻辑。

具体观察者(Concrete Observer):具体观察者是观察者的具体实现,它通过实现观察者接口或继承观察者抽象类来定义自身的更新逻辑。具体观察者根据主题的通知进行相应的操作或处理。

观察者模式的工作流程如下:

主题(被观察者)维护一组观察者对象,并提供注册和删除观察者的方法。

观察者通过接口或抽象类定义的方法注册到主题中,成为主题的观察者。

当主题的状态发生变化时,主题会遍历所有注册的观察者,并调用它们的相应方法来通知更新。

观察者接收到主题的通知后,根据通知内容进行相应的更新操作。

观察者模式的优点包括:

解耦性:观察者模式将主题和观察者解耦,使它们可以独立变化,而不会相互影响。

可扩展性:可以方便地增加新的观察者,或者在不修改现有代码的情况下增加新的主题。

灵活性:观察者模式支持动态的、松散耦合的关系,允许对象在运行时建立关系。

观察者模式在实际应用中广泛使用,例如事件处理系统、GUI 组件、消息队列等。它提供了一种有效的对象间通信机制,使得系统更灵活、可扩展,并符合面向对象设计的原则。

相关文章

  • 设计模式之观察者模式(实例+Demo)

    你能从本文了解到如下几个方面:1. 什么是观察者模式?2. 如何使用观察者模式。 3. Java中的观察者模式的使...

  • 观察者模式

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

  • 观察者模式(C++实现)

    一、什么是观察者模式 1.1观察者模式的概念 观察者模式(observer pattern)是一种对象行为模式。...

  • RxJava(二)

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

  • RxJava 2.x 源码分析(一)

    主要介绍 Rxjava 是如何利用观察者模式实现通信 依赖 核心类和接口 Observable (被观察者) 被...

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

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

  • 学习 Vue 中观察者模式

    贴一个 Vue 中源码的观察者模式源码 手动实现观察者模式 观察者模式和订阅发布模式的区别 观察者模式是由具体的目...

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

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

  • RxJava设计模式与原理

    标准观察者设计模式 RxJava是一种特殊的观察者模式,首先我们先来看标准的观察者设计模式。在标准观察者模式中,存...

  • 【设计模式】之观察者模式

    观察者模式 什么是观察者模式 观察者模式属于行为模式的一种,定义了对象的通用交流方式。 观察者模式定义了一对多的关...

网友评论

      本文标题:观察者模式是如何工作的?

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