观察者模式(Python实现)
来源:互联网 发布:微信支付没网络能用吗 编辑:程序博客网 时间:2024/06/16 16:19
何谓“观察者模式”?本人不喜欢将简单的东西弄得很复杂的样子,遂简要介绍如下。
- 有一目标物(subject,即observable),有众多观察者(observers)关注其异动;
- 目标物维护观察者列表,故若要新增观察者,则需向此目标物注册该新观察者;
- 当目标物有状态变化时,会主动通知在其注册的所有观察者,方式为:以for循环调用所有观察者的notify()方法;故所有观察者都需要有notify()方法
Python的实现如下:
class Observable: def __init__(self): self.__observers = [] def register_observer(self, observer): self.__observers.append(observer) def notify_observers(self, *args, **kwargs): for observer in self.__observers: observer.notify(self, *args, **kwargs) class Observer: def __init__(self, observable): observable.register_observer(self) def notify(self, observable, *args, **kwargs): print('Got', args, kwargs, 'From', observable) subject = Observable()observer = Observer(subject)subject.notify_observers('test')执行结果为:
('Got', ('test',), {}, 'From', <__main__.Observable instance at 0x6ffffe273f8>)
- https://en.wikipedia.org/wiki/Observer_pattern
(完)
1 0
- 观察者模式(Python实现)
- 观察者模式 python实现
- 观察者模式(python)
- 设计模式之观察者模式(Python实现)
- 设计模式十八(观察者模式,python语言实现)
- python设计模式实现 -- 观察者模式
- 观察者模式(python版)
- 观察者模式(java实现)
- 设计模式:观察者模式(Python)
- 23种设计模式之python实现--观察者模式
- 设计模式-观察者模式(PHP实现)
- 设计模式---观察者模式(C++实现)
- 设计模式---观察者模式(C++实现)
- 设计模式-观察者模式(Java实现)
- python观察者模式
- python观察者模式
- Python设计模式-观察者模式
- python设计模式(观察者模式)
- Android学习之Drawelayout
- 自定义倒计时TimeButton
- 2016年全国职称计算机应用能力考试各省市报名入口
- TCP连接三次握手的通俗理解
- Android APP欢迎界面小试身手
- 观察者模式(Python实现)
- android6.0SDK 删除HttpClient的相关类的解决方法
- hessian的理解
- Java7语法新特性
- java中接口的美妙
- scrapy 安装指导
- Windows7通过公网远程处在路由器内网的PC
- PopupWindow使用
- 文章标题