zoukankan      html  css  js  c++  java
  • [Design] Observer Pattern

      行为模式主要是责任和算法的抽象化。行为模式不仅仅是关于类和对象的,而且是关于它们之间的相互作用的。
      行为模式分为类的行为模式和对象的行为模式两种。
    类的行为模式
        类的行为模式使用继承关系在几个类之间分配行为。
    对象的行为模式
        对象的行为模式则使用对象的聚合来分配行为。
    --------------------------------------------------------
    观察者模式
      观察者模式对象的行为模式,又叫做发布-订阅模式(Publish/Subscribe)、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。
         观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使它们自动更新自己。

    结构及角色


    •  1、抽象主题(Subject)角色

        主题把所有对观察者对象的引用保存到一个聚集里,每个主题都可以有任何数量的观察者。抽象主题提供一个接口,可以增加和删除观察者对象,主题角色又叫做抽象被观察者角色,一般由一个抽象类或接口实现。

    • 2、抽象观察者(Observer)角色

        为所有具体观察者定义一个接口,在得到主题的通知进更新自己。这个接口叫作更新接口。此角色一般由一个抽象类或接口实现。

    • 3、具体主题(Concrete Subject)角色

        将有关状态存入具体观察者对象,在具体主题的内部状态发生变化时,通知所有登记过的观察者对象。以叫做具体被观察者角色。一般由一个具体子类实现。

    • 4、具体观察者(Concrete Observer)角色

        存储与主题的状态自恰的状态。具体观察者角色实现抽象观察者所声明的更新接口,以便使本身状态与主题状态相协调。如果需要,可以保存一个指向具体主题对象的引用。一般由一个具体类来实现。

  • 相关阅读:
    O(1)时间求出栈内元素最小值
    静态查找>顺序、折半、分块查找
    字符串的最大重复数
    数据结构>栈
    排序>归并排序
    动态查找>二叉查找树(Binary Search Tree)
    数据结构>图的存储结构
    数据结构>图的连通性和最小生成树
    图片的轮廓
    数据结构>队列
  • 原文地址:https://www.cnblogs.com/abeen/p/1441880.html
Copyright © 2011-2022 走看看