1.1  定义

  定义了一种一对多的依赖关系,让多个观察者同时监听一个对象,但这个对象发生变化时,会通知所有观察者对象,使他们能够更新自己。

1.2  类图

1.3  代码

 View Code

调用:

 View Code

1.4  总结

  我们定义观察者和通知者和通知者两个抽象父类都是为了面向抽象编程,以后再增加新的功能时增加新的类,而不修改原有的子类。 还有一个耦合:我们通知者对象通知观察者时执行的方法都是同一个方法。方法的执行体虽然已经被观察者重写,但是名字还是一致的。所以我们在通知者中增加了委托类型的成员,只需要将通知观察者的方法,注册给通知者的委托成员。这样就能完全自定义执行的方法了。

转载于:https://www.cnblogs.com/yangmingyu/p/6928270.html

设计模式笔记8: 观察者模式相关推荐

  1. 设计模式笔记(19)---观察者模式(行为型)

    Gof定义 定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通 知并自动更新 动机 在软件构建过程中,我们需要为某些对象建立一种"通知依赖关系&qu ...

  2. 设计模式 ( 十六 ) 观察者模式Observer(对象行为型)

    设计模式 ( 十五 ) 观察者模式Observer(对象行为型) 1.概述 一些面向对象的编程方式,提供了一种构建对象间复杂网络互连的能力.当对象们连接在一起时,它们就可以相互提供服务和信息. 通常来 ...

  3. 设计模式笔记——代理模式

    设计模式笔记--代理模式 代理模式介绍 代理模式通常是介于请求方和提供方的一个中介系统,请求方是发送请求的一方,提供方是根据请求提供相应资源的一方 Web中的代理服务器就是一个例子,客户端向代理服务器 ...

  4. 李建忠讲23种设计模式笔记-上

    前两天在B站看了李建忠老师讲23种设计模式的系列视频,收获颇丰.设计模式是前人的智慧和经验的总结,需要我们反复地学习.在实践中体会其蕴含的设计原则和设计思想.李老师按照封装变化将23种设计模式分成组件 ...

  5. 设计模式(四) Observe——观察者模式

    设计模式四 Observe--观察者模式 观察者模式 当对象间存在一对多关系时,则使用观察者模式(Observer Pattern).比如,当一个对象被修改时,则会自动通知它的依赖对象.观察者模式属于 ...

  6. Java设计模式笔记——七个结构型模式

    系列文章目录 第一章 Java设计模式笔记--七大设计原则 第二章 Java设计模式笔记--六个创建型模式 文章目录 系列文章目录 一.适配器模式 1.概念 2.类适配器 3.对象适配 4.缺省适配器 ...

  7. 软件设计师——设计模式笔记上

    软件设计师--设计模式笔记上(创造型5种) 设计模式的主要目的 设计模式的原则 1.工厂方法模式(类模式) 意图 适用性 代码实现 2.抽象工厂模式(对象模式) 意图 适用性 代码实现 3.生成器模式 ...

  8. java观察者模式本质_6.[研磨设计模式笔记]观察者模式

    1.定义 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动更新. 2.解决问题 --订阅报纸 看起来订阅者是直接根有据打交道,但实际上,订阅者的订阅数据 ...

  9. 设计模式笔记 18. Observer 观察者模式(行为型模式)

    18. Observer 观察者模式                     2008-09-15 动机(Motivation) 在软件构建过程中,我们需要为某些对象建立一种"通知依赖关系& ...

最新文章

  1. 【设计模式】装饰者模式
  2. Safari的CSS HACK方法
  3. Mybatis系列(三):Mybatis实现关联表查询
  4. XAML实例教程系列 - 命名空间(NameSpace) 三
  5. 武未转变服务器tp,未转变者怎么tp别人 | 手游网游页游攻略大全
  6. 阿里云应用高可用服务公测发布
  7. 以相关组为基础的3D物体识别
  8. 隔离式BUCK之参数计算
  9. click事件在什么时候出发_关于JS 事件冒泡和onclick,click,on()事件触发顺序
  10. pandas 批量修改列名_十分钟想搞定pandas?
  11. Windows XP搜索功能 包含文字 搜索不到内容的解决办法
  12. 大数据Hadoop学习记录(4)----基于JAVA的HDFS文件操作
  13. solidworks做动态静力学分析Motion(牛头刨床为例)机械原理课设(停止中断)
  14. 立体几何——球缺问题
  15. 从含有数字的字符串中提取数字
  16. 配对t检验的应用条件是什么_配对t检验在实际工作中的应用
  17. 洛谷 P4200 千山鸟飞绝平衡树
  18. 如何查看本机IP及端口
  19. gentoo linux 安装记录
  20. 搜狗微信指数上线 全面直观反映微信热点趋势

热门文章

  1. php输出excel表格乱码和第一个0不显示的解决方法(详细)
  2. mat分析dump分析_MAT从入门到精通(一)
  3. redistemplate使用_spring-boot-starter-data-redis源码解析与使用实战
  4. canvas笔记-globalAlpha和globaleCompositeOperation的使用
  5. Qt与java web通过数据库实现数据展示同步
  6. Qt工作笔记-QLineEdit用正则限制文本框的输入内容+正则表达式语法
  7. centos8 装docker 问题
  8. mysql部署练习_MySQL主从练习 - osc_b9r67jnt的个人空间 - OSCHINA - 中文开源技术交流社区...
  9. textview字体切换颜色_百元耳机支持主从切换,关键双耳双麦还能立体降噪
  10. rust实现wss访问_Rust的所有权,第2部分