观察者模式(python版)
观察者模式 :又叫发布-订阅模式。 它定义了一种一对多的依赖关系,让多个观察者对象同时鉴定某一个主题对象。这个主题对象在状态发生变化时,会通知所有的观察者对象,使它们能够自动更新自己。 观察者模式所做的工作实际上就是解耦,根据“ 依赖倒转原则 ”,让耦合的双方都依赖于抽象,而不是依赖于具体,从而使得各自的变化都不会影响另一边的变化。 实际场景中存在的问题 :现实中实际观察者不一定有实现观察者的通知回调方法。 解决之道: 1、为其封装一个观察类出来,实现相应的接口。 2、修改通知类,让具体观察者的Notify函数直接去调用相应的接口。 [python] view plain copy #encoding=utf-8 # #by panda #观察者模式 def printInfo(info): print unicode(info, 'utf-8' ).encode( 'gbk' ) #抽象的通知者 class Informer(): observers = [] action = '' def Attach( self , observer): self .observers.append(observer) def Notify( self ): for o in self .observers: o.Update() #秘书 class Secretary(Informer):