首页 > 其他分享 >观察者模式

观察者模式

时间:2024-02-28 20:00:43浏览次数:25  
标签:__ name observer self 观察者 模式 message def

import time


class Observer:
    def __init__(self, name) -> None:
        self.name = name

    def update(self, message):
        print("name %s received message: %s" % (self.name, message))


class Subject:
    def __init__(self) -> None:
        self.objects = []

    def add_object(self, observer: Observer):
        self.objects.append(observer)

    def notify(self, name, message):
        for o in self.objects:
            if o.name == name:
                o.update(message)


actions = ["烟花", "二踢脚", "鱼雷王", "曼城春雨"]
subject = Subject()
for action in actions:
    observer = Observer(action)
    subject.add_object(observer)


for action in actions:
    subject.notify(action, "开始点燃了")
    time.sleep(1)

标签:__,name,observer,self,观察者,模式,message,def
From: https://www.cnblogs.com/gatling/p/18041647

相关文章

  • 策略模式
    importtimeclassLocalStrategy:defexecute(self):print("thisisalocal104execute")classSaasStrategy:defexecute(self):print("thisisasaasexecute")classSwitch:def__init__(self,strategy......
  • 23种设计模式 - 单例模式
      饿汉式特点:线程安全,调用效率高,但是不能延时加载publicclassSingletonDemo01{privatestaticSingletonDemo1instance=newSingletonDemo1();privateSingletonDemo1(){}publicstaticSingletonDemo1getInstance(){returninstance;}......
  • DM数据库几种主备模式说明
    前言DM数据库的主备集群主要是由搭建数据守护的方式来实现。DM数据守护(DMDataWatch)的实现原理非常简单:将主库(生产库)产生的Redo日志传输到备库,备库接收并重新应用Redo日志,从而实现备库与主库的数据同步。在此基础下,DM通过一些参数和接口的控制可以实现实时主备、读写分离集群......
  • 针对业务系统如何做需求分析(设计模式)
    对于一个工程师来说,如果要追求长远的发展,你就不能一直只把自己放在执行者的角色中,不能只把一个代码的实现者。你还要有独立负责一个系统的能力,能端到端开发一个完整的系统。这其中包括:前期的需求分析,中器的代码的设计和实现。后期的系统的上线维护等。 前面我们还提到过,大部分......
  • 享元模式
    简介享元模式(FlyweightPattern)是一种结构型设计模式,旨在通过共享对象来减少内存使用和提高性能。它适用于需要大量相似对象的情况,其中对象的大部分状态都可以共享,而少部分状态需要外部化。通过共享这些相似对象,可以减少内存消耗,提高系统性能。结构享元工厂(FlyweightFactory......
  • 装饰器模式
    简介装饰器模式(DecoratorPattern)是一种结构型设计模式,它允许向现有对象动态地添加新功能,同时又不改变其结构。该模式通过创建一个包装对象,也就是装饰器,来包裹原始对象,并在包裹的过程中添加新的行为或责任。结构Component(组件):定义了一个对象接口,可以给这些对象动态地添加职责......
  • 组合模式
    简介组合模式是一种结构型设计模式,它允许你将对象组合成树形结构以表现"部分-整体"的层次结构。这种模式使得用户对单个对象和组合对象的使用具有一致性。在组合模式中,有两种主要类型的对象:叶节点和组合节点。叶节点代表了树结构中的最终对象,而组合节点则表示了可以包含其他组合......
  • 桥接模式
    简介桥接模式(BridgePattern)是一种结构型设计模式,它主要用于将抽象部分与实现部分分离,从而使它们可以独立变化。桥接模式通过将继承关系转化为组合关系,使得抽象部分和实现部分可以独立地变化,不会相互影响。在桥接模式中,抽象部分通常指的是一个抽象类或接口,它定义了对外的接口或......
  • KISS 原则 (设计模式)
    KISS定义kiss原则的英文描述又几个版本,计较下边的这几个keepitsimpleandstupid.keepitshortandsimplekeepitsimpleandstraightforward不过仔细看你会发现,他们表达的意思其实差不多,尽量保持简单。它是一个万金油的设计原则,可以在很多场景中,它不仅仅经常用来指......
  • 适配器模式
    简介适配器模式是一种结构型设计模式,它允许将一个类的接口转换成客户端所期望的另一个接口。适配器模式通常用于解决两个不兼容接口之间的兼容性问题,使得原本由于接口不匹配而无法一起工作的类能够协同工作。适配器模式主要由三个角色组成:目标接口(TargetInterface):客户端所期......