Python中行为型观察者模式的示例分析
发表于:2025-11-13 作者:千家信息网编辑
千家信息网最后更新 2025年11月13日,这篇文章主要介绍Python中行为型观察者模式的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、观察者模式观察者模式,必须包含 "观察者" 和 "被观察者" 这两个角
千家信息网最后更新 2025年11月13日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安全错误
数据库的锁怎样保障安全
老挝语翻译软件开发
数据库的连接池
网络安全应急机制建设
地平线5登不上服务器
企业服务器虚拟化安装步骤
python数据库自动连接
64位正弦波数据库
网络安全知识竞答答案2020
达梦数据库中修改字段的标度
数据库用sql语句
丰巢网络技术有限公司薛汉洲
海底捞网络技术
网络安全的关键风险
算力网络技术图谱
直播服务器的性能要求
ms数据库线程安全性
轻享互联网科技怎么样
如何记住网络技术
网络安全儿歌 下载
t430服务器多少钱
梦幻新诛仙玩哪个服务器
数据库绘制直方图
计算机网络技术 职称
js追加某个数据的数据库
中国网络安全的守护人
高频交易软件开发
中国电信网络安全岗位
会员绑定手机网络安全法
华能网络安全竞赛题目
长沙华中近帮互联网科技