23种设计模式之python实现--观察者模式

来源:互联网 发布:js触发不显示事件 编辑:程序博客网 时间:2024/05/16 08:58

前几天,家里出了点事,一下这中断了写blog,现在继续接着写吧,从这篇开始写行为型的模式

#理解#Observer模式是最多应用的模式之一#在很多的编程语言中,都实现了这种模式,并利用了这种模式#例子#订报的例子应该比较合适吧class publisher(object):    observers=list()    msg=None    def register(self,observer):        self.observers.append(observer)    def disregister(self,observer):        self.observers.remove(observer)    def Notify(self):        for ob in self.observers:            ob.update()class newspublisher(publisher):    def getMessage(self):        return self.msg    def setMessage(self,msg):        self.msg=msgclass observer:    def update(self):        passclass people(observer):    def __init__(self,publisher):        self.publisher=publisher        self.publisher.register(self)    def disregister(self):        self.publisher.disregister(self)    def update(self):        print self.publisher.getMessage()if __name__=="__main__":    news=newspublisher()    person1=people(news)    person2=people(news)    news.setMessage("nihao")    news.Notify()    person1.disregister()    news.setMessage("hello")    news.Notify()


0 0
原创粉丝点击