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

    一、定义

    定义对象间的一种一对多的依赖关系。当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。

    观察者模式又被称为发布-订阅模式(publish-subscribe)。

    对于一个目标对象,其观察者可以是多个,当然也可以只有一个。

    二、类图

     

    Subject(目标接口)、ConcreteSubject(具体的目标)

    1.一个目标对象可以被多个观察者观察
    2.目标对象可以注册(register)和退订(remove)观察者
    3.当目标的状态发生改变时,目标负责通知所有注册的、有效的观察者。

    Observer(观察者)、ConcreteObserver(具体的观察者)

    1.能够保存注册的观察者对象(具有一个容器)
    2.提供注册和删除观察者的方法(注册观察者和删除观察者方法)
    3.能够通知所有注册的观察者对象(提供一个通知方法)

    三、实现

    目标对象要维持一个观察者的列表,因为只有这样,当目标对象发生改变时,才能对注册的观察者进行通知。

    四、JDK对观察者模式的支持

    由于观察者模式应用的非常广泛,所以JDK提供了内置的支持。但是许多时候,自己建立这一切会更具有弹性(况且建立这一切并不是很麻烦)

     推模式(push)和拉模式(pull)

    ……更多设计模式的内容,可以访问Refactoring.Guru

  • 相关阅读:
    [IOI2014] 假期
    [SPOJ22343] Norma
    [APC001] D Forest
    [POI2004] SZN
    [JZOJ5837] Omeed
    [JZOJ5836] Sequence
    【题解】[CH弱省胡策R2]TATT
    【题解】简单题
    【题解】巧克力王国
    【题解】[SDOI2010]捉迷藏
  • 原文地址:https://www.cnblogs.com/rouqinglangzi/p/6925371.html
Copyright © 2011-2022 走看看