python观察者模式
2017-02-15 23:27
393 查看
以下是我从一本书上看到的例子,特地分享给大家,仅供参考
作用:监控或者数据备份
创建核心对象:
class Inventory:
def __init__(self):
self.observers=[]
self._product=None
self._quantity=0
#
def attach(self,observer):
self.observers.append(observer)
#@property就是属性的get/set,我的另一篇有介绍
@property
def product(self):
return self._product
@product.setter
def product(self,value):
self._product=value
self._update_observers()
@property
def quantity(self):
return self._quantity
@quantity.setter
def quantity(self,value):
self._quantity=value
self._update_observers()
def _update_observers(self):
for observer in self.observers:
observer()
创建一个观察者:
class ConsoleObserver:
def __init__(self,inventory):
self.inventory=inventory
#必须实现call方法处理变化
def __call__(self):
print(self.inventory.product)
print(self.inventory.quantity)
测试:
>>i=Inventory()
>>c=ConsoleObserver(i)
>>i.attach(c)
>>i.product="widget"
widget
0
>>i.quantity=5
widget
5
那么,我们只需要再成立几个观察者,就可以拥有多个“同样”数据
作用:监控或者数据备份
创建核心对象:
class Inventory:
def __init__(self):
self.observers=[]
self._product=None
self._quantity=0
#
def attach(self,observer):
self.observers.append(observer)
#@property就是属性的get/set,我的另一篇有介绍
@property
def product(self):
return self._product
@product.setter
def product(self,value):
self._product=value
self._update_observers()
@property
def quantity(self):
return self._quantity
@quantity.setter
def quantity(self,value):
self._quantity=value
self._update_observers()
def _update_observers(self):
for observer in self.observers:
observer()
创建一个观察者:
class ConsoleObserver:
def __init__(self,inventory):
self.inventory=inventory
#必须实现call方法处理变化
def __call__(self):
print(self.inventory.product)
print(self.inventory.quantity)
测试:
>>i=Inventory()
>>c=ConsoleObserver(i)
>>i.attach(c)
>>i.product="widget"
widget
0
>>i.quantity=5
widget
5
那么,我们只需要再成立几个观察者,就可以拥有多个“同样”数据
相关文章推荐
- Head First 设计模式——观察者模式(Observer Pattern)——Python实现(2)
- 观察者模式(python版)
- python 设计模式之观察者模式
- 举例讲解Python设计模式编程中的访问者与观察者模式
- 举例讲解Python设计模式编程中的访问者与观察者模式
- 观察者模式 python实现
- python设计模式之观察者模式
- Python 观察者模式 (刺客护卫攻防战)
- Python设计模式之观察者模式实例
- 详解Python设计模式编程中观察者模式与策略模式的运用
- 【设计模式】观察者模式(observer)c#/python实现
- Python 设计模式 -- 观察者模式
- 设计模式十八(观察者模式,python语言实现)
- Python设计模式——观察者模式
- python设计模式实现 -- 观察者模式
- Head First 设计模式——观察者模式(Observer Pattern)——Python实现(3)
- 设计模式之观察者模式(Python实现)
- 一个python程序员的ruby三日游(四)——观察者模式
- python观察者模式
- [python实现设计模式]-4.观察者模式-吃食啦!