美文网首页技术研发汇集
使用 python 解释观察者模式

使用 python 解释观察者模式

作者: 知信学源 | 来源:发表于2024-03-06 09:36 被阅读0次

观察者模式(Observer Pattern)是一种行为型设计模式,在该模式中,对象间的一对多依赖关系被定义。当一个对象状态发生改变时,所有依赖于这些对象的其他对象都会得到通知并自动更新。

以下是使用 Python 语言来解释观察者模式的示例代码:

# 创建主题类 Subject

class Subject:

def __init__(self):

self.observers = []

# 注册观察者

def register(self, observer):

if not isinstance(observer, Observer):

raise TypeError("Invalid observer type")

self.observers.append(observer)

# 移除观察者

def remove(self, observer):

if observer in self.observers:

self.observers.remove(observer)

# 通知所有观察者

def notify_all(self, message):

for observer in self.observers:

observer.update(message)

# 创建观察者类 Observer

class Observer:

def update(self, message):

pass

# 创建具体观察者类 ConcreteObserver1、ConcreteObserver2...

class ConcreteObserver1(Observer):

def update(self, message):

print("ConcreteObserver1 received a notification:", message)

class ConcreteObserver2(Observer):

def update(self, message):

print("ConcreteObserver2 received a notification:", message)

# 测试观察者模式

if __name__ == "__main__":

subject = Subject()

observer1 = ConcreteObserver1()

observer2 = ConcreteObserver2()

subject.register(observer1)

subject.register(observer2)

subject.notify_all("Hello observers!")

运行上述代码后,输出结果如下:

ConcreteObserver1 received a notification: Hello observers!

ConcreteObserver2 received a notification: Hello observers!

相关文章

  • 观察者模式_20190912(python)

    一、观察者模式介绍 二、观察者模式UML 三、python实现观察者模式(demo1、2) 1、demo1 """...

  • 发布订阅模式(观察者模式)

    发布订阅模式(观察者模式) 发布订阅也叫观察者模式 发布 && 订阅 使用

  • 1.开始Python之旅

    一、实验目的 了解什么是Python 认识交互模式的Python3解释器的使用 学习如何使用gedit编写Pyth...

  • 2017-12-26

    今天黄老师讲解了python观察者模式,观察者模式有很多实现方式,从根本上说,该模式必须包含两个角色:观察者和被观...

  • RxJava观察者模式

    1.点击事件的观察者模式: 2.通用观察者模式: 3.RxJava的观察者模式 RxJava使用的是扩展的观察者模...

  • 观察者模式

    个人博客http://www.milovetingting.cn 观察者模式 模式介绍 观察者模式是一个使用率非常...

  • 别再面向 for 循环编程了,Spring 自带的观察者模式就很

    1. 概述 在设计模式中,观察者模式是一个比较常用的设计模式。维基百科解释如下: 观察者模式是软件设计模式的一种。...

  • 设计模式02-观察者者设计模式

    [toc] 设计模式02-观察者者设计模式 主要来源Head First设计模式(书)观察者设计模式是JDK中使用...

  • iOS与观察者模式(一)

    什么是观察者模式 观察者模式应该是我们日常中听说的最多,同时也是经常使用的设计模式。那么什么是观察者模式? 举一个...

  • 借助工厂模式构建不同的 Fragment

    还记的上篇文章 使用观察者模式解决单 Activity 与多个 Fragment 通信 中我使用了观察者模式暂时解...

网友评论

    本文标题:使用 python 解释观察者模式

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