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"






        
        
    
View Code

 这个例子将gerrit仓作为源,然后将gerrit上更新的信息,同步到txt和excel。

posted on 2016-09-11 18:12  lexn  阅读(24)  评论(0)    收藏  举报

导航