• 观察者模式


    问题描述:

        观察者模式

    问题解决:

    观察者模式-----定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。

        观察者(Observer)模式是对象的行为型模式,又叫做发表-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-收听者(Source/Listener)模式或从属者(Dependents)模式。

    结构图:

    observer

    观察者模式

    什么时候使用观察者模式:

        1、当一个对象的改变需要同时改变其他对象的时候,而且不知道具体有多少对象有待改变时,应该考虑使用观察者模式。

        2、观察者模式所做的工作其实就是在解除耦合。让耦合的双方都依赖于抽象,而不是依赖于具体,使得各自的变化都不会影响另一边的变化。

    具体实现:

    (1)Subject抽象类

    clipboard

    注:

        发布消息类,包含了添加、删除订阅者、发布消息,通知所有的订阅者

      (2)具体的发布消息的类实现

    clipboard[1]

    clipboard[2]

    clipboard[3]

    注:

        包含一个观察者容器,可以添加和删除观察者,实现一个notifyall接口,通知订阅的观察者

        (3)观察者公有接口

    clipboard[4]

    注:

        观察者,接收订阅者通知,更新自己的信息

        (4)具体观察者实现

    clipboard[5]

    注:

        观察者对象,需要包含发布者对象,更新时更具发布者发送的信息,更新状态信息

    clipboard[6]

    注:

        另一个观察者对象。

    具体源代码:

        观察者:

    attachmentattachment[1]attachment[2]

        发布者:

    attachment[3]attachment[4]attachment[5]

  • 相关阅读:
    Oracle DataGuard搭建(二)
    Oracle DataGuard搭建(一)
    Linux 安装oracle10g 配置dataguard 介绍和步骤
    Oracle DataGuard数据备份方案详解
    汽车行业的DMS系统 IT不变应万变
    汽车行业DMS系统介绍
    详解UML中的聚合,关联,泛化等关系
    ASP.NET将Session保存到数据库中
    C#快捷键
    Asp.net中使用资源文件实现网站多语言
  • 原文地址:https://www.cnblogs.com/luosongchao/p/3201486.html
Copyright © 2020-2023  润新知