Python中行为型观察者模式的示例分析
发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章主要介绍Python中行为型观察者模式的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、观察者模式观察者模式,必须包含 "观察者" 和 "被观察者" 这两个角
千家信息网最后更新 2026年11月04日Python中行为型观察者模式的示例分析
这篇文章主要介绍Python中行为型观察者模式的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
一、观察者模式
观察者模式,必须包含 "观察者" 和 "被观察者" 这两个角色,并且观察者和被观察者之间存在 "观察" 的逻辑关联,当被观察者发生改变的时候,观察者就会观察到这样的变化,并且做出相应的响应。例如:业务数据是被观察者,用户界面是观察者。
实际上,观察者模式大部分都是一对多的关系,可以多个观察者对象同时观察某一个被观察对象。
观察者模式的实现思路是:核心的抽象类用于管理所有依赖它的其他类,当核心类发生变动时,主动通知并更新其他类。
二、应用场景
一个抽象模型有两个方面,其中一个方面依赖于另一个方面。将这些方面封装在独立的对象中使它们可以各自独立地改变和复用。
一个对象的改变将导致其他一个或多个对象也发生改变,而不知道具体有多少对象将发生改变,可以降低对象之间的耦合度。
一个对象必须通知其他对象,而并不知道这些对象是谁。
需要在系统中创建一个触发链,A 对象的行为将影响 B 对象,B 对象的行为将影响 C 对象,…。可以使用观察者模式创建一种链式触发机制。
三、代码示例
当客户的数量减少到阀值时,销售将通知工厂减少生产量、同时通知人力资源开始裁员,反之则增加。
class Observer: """观察者核心类,销售人员""" def __init__(self): self._number = None self._department = [] @property def number(self): return self._number @number.setter def number(self, value): self._number = value print('当前客户数:{}'.format(self._number)) for obj in self._department: obj.change(value) print('------------------') def notice(self, department): """相关部门""" self._department.append(department)class Hr: """观察者类,人事部门""" def change(self, value): if value < 10: print("人事变动:裁员") elif value > 20: print("人事变动:扩员") else: print("人事不受影响")class Factory: """观察者类,工厂类""" def change(self, value): if value < 15: print("生产计划变动:减产") elif value > 25: print("生产计划变动:增产") else: print("生产计划保持不变")if __name__ == '__main__': observer = Observer() hr = Hr() factory = Factory() observer.notice(hr) observer.notice(factory) observer.number = 10 observer.number = 15 observer.number = 20 observer.number = 25以上是"Python中行为型观察者模式的示例分析"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
观察
观察者
对象
模式
行为
方面
示例
人事
核心
变动
影响
生产
分析
两个
之间
内容
同时
多个
客户
工厂
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
盈实互联网科技
互联网最新的科技有限公司
互联网科技战争
互联网 科技公司
互联网科技金融
平安科技 互联网
互联网科技公司怎么样
互联网科技公司官网
互联网科技公司有哪些
佰商互联网科技有限公司
互联网科技股有哪些
互联网科技素材视频竖屏
联恩商钥互联网科技有限公司
深圳卡尔迅互联网科技有限公司怎么样
互联网科技有哪些公司
未来五年的互联网科技
明优互联网科技有限公司
深圳互联网科技的发展
互联网领先科技宣传片
米泉互联网科技专业怎么样
科技互联网龙头
科技与互联网
互联网养老 桔豆科技
贵州叶脉互联网科技有限公司所属行业
互联网科技扶贫时间
互联网科技人工智能实验室
互联网方面的科技前沿
宇信科技在杭州互联网排第几
艺电能源互联网科技有限公司招聘
承德科技产业互联网平台