zoukankan      html  css  js  c++  java
  • 设计模式-观察者模式(Observer Pattern)

    今天看了看观察者模式,有点小小的体会,从以下3点说明之 :

    1.看一下经典的观察者模式图

    2.讲个故事,说一下逻辑

    有一个男人(Subject),他通过一定的手段(attach)拥有了3个女人(Observer):老婆(concreteObserver1),情人(concreteObserver2),小3(concreteObserver3).这3个女人都不知情,但是都想知道男人的月收入情况。而月收入需要通过工资卡(concreteSubject)来体现。所以,每当发工资(setState)时,男人就会群发短信(Notify)告知3个女人可以去查钱了,那么,这3个女人查询(getState)到工资卡里的钱,就想各自的挥霍方式去了。

    3.观察者模式适用性

    当一个抽象模型有两个方面,其中一个方面依赖于另一个方面。将这二者封装在独立的对象中以使它们可以各自独立地改变和复用。

    当对一个对象的改变需要同时改变其他对象,而不知道具体有多少对象有待改变。

    当一个对象必须通知其他对象,而它又不能假定其他对象时谁。

    Push ModelSubject 向 Observer 发送关于改变的详细信息,而不管它们是否需要。

    Pull Model:Subject 除最小通知外什么也不推送,由 Observer 显式地向 Subject 询问细节。

  • 相关阅读:
    input 特殊字符限制
    angular $http服务
    angular $resouse服务
    ng-model-options 时延
    Pytorch之数据处理
    python 小顶堆
    刷题套路总结
    数组分成和尽可能相等的子数组
    python3.7 sorted 自定义排序
    Leetcode 二维数组周游 54
  • 原文地址:https://www.cnblogs.com/mayt-/p/3775937.html
Copyright © 2011-2022 走看看