python设计模式
python设计模式
一、观察者模式
核心思想:对象(类)之间,互相保存对象或类名。保持连接。
场景:一个源,输出到不同文件或类型。
#! /usr/bin/env python class GerritInventory(object): def __init__(self): self.observers = [] self.commit_name = None self.commit_url = None def attach(self,observer): self.observers.append(observer) @property def commitname(self): return self.commit_name @commitname.setter def commitname(self,value): self.commit_name = value self.__update_observers() @property def commiturl(self): return self.commit_url @commiturl.setter def commiturl(self,value): self.commit_url = value self.__update_observers() def __update_observers(self): for observer in self.observers: observer() class Cdweb(object): def __init__(self,gi): self.gi = gi def __call__(self): print "%s and %s cdweb write txt "%(self.gi.commit_name,self.gi.commit_url) class Excels(object): def __init__(self,gi): self.gi = gi def __call__(self): print "%s and %s EXCEL write "%(self.gi.commit_name,self.gi.commit_url) gi = GerritInventory() c = Cdweb(gi) e = Excels(gi) gi.attach(c) gi.attach(e) gi.commitname = "liuxiao" gi.commiturl = "10.10.10.10"
这个例子将gerrit仓作为源,然后将gerrit上更新的信息,同步到txt和excel。
浙公网安备 33010602011771号