zoukankan      html  css  js  c++  java
  • 观察者模式

    观察者模式

     

    模式说明

    定义了一种一对多的关系,让多个观察对象同时监听一个主题对象,当主题对象状态发生变化时会通知所有观察者。

    模式结构图

    程序示例

    说明:两个观察者,得到同一个通知

    代码:

    复制代码
    class Subject(object):
        observers=[]
        info=''
        def __init__(self,info):
            self.info = info
        def notify(self):
           for o in self.observers:
               o.display(self.info)
    
        def attach(self,observer):
            self.observers.append(observer)
        def deattach(self,observer):
            self.observers.remove(observer)
    
    class Observer(object):
        def __init__(self,name):
            self.name=name
    
        def display(self,info):
            print 'notice '+ self.name + ' that '+ info
    
    class NBAObserver(Observer):
        pass
    
    class F1Observer(Observer):
        pass
    
        
    if __name__=='__main__':
        subject = Subject('win win win win')
        observer = NBAObserver('NBA')
        subject.attach(observer)
        observer = F1Observer('F1')
        subject.attach(observer)
        subject.notify()
    复制代码

    运行结果:

    参考来源:

    http://www.cnblogs.com/chenssy/p/3679190.html

    http://www.cnblogs.com/wuyuegb2312/archive/2013/04/09/3008320.html

    http://www.cnblogs.com/Terrylee/archive/2006/07/17/334911.html

  • 相关阅读:
    .NET 动态向Word文档添加数据
    .NET FileUpLoad上传文件
    Jquery 客户端生成验证码
    ASP.NET MVC 5 基本构成
    .NET 发布网站步骤
    Jquery 选择器大全
    .NET 知识整理笔记
    .NET 三层架构
    C#知识整理笔记
    .NET MD5加密解密代码
  • 原文地址:https://www.cnblogs.com/Siny0/p/11155761.html
Copyright © 2011-2022 走看看