设计模式C++实现40讲(11)终生受益的观察者模式

312 篇文章 58 订阅 ¥99.00 ¥39.90
13 篇文章 0 订阅 ¥99.00 ¥19.90

在GOF的《设计模式:可复用面向对象软件的基础》一书中对观察者模式是这样说的:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。当一个对象发生了变化,关注它的对象就会得到通知;这种交互也称为发布-订阅(publish-subscribe)

观察者模式以消息发布-订阅来代入会更加容易理解。

最常见的一个例子就是: 对同一组数据进行统计分析时候, 我们希望能够提供多种形式的表示 (例如以表格进行统计显示、柱状图统计显示、百分比统计显示等)。这些表示都依赖于同一组数据, 我们当然需要当数据改变的时候, 所有的统计的显示都能够同时改变。 Observer 模式就是解决了这一个问题。

UML类图:
img

Subject(抽象主题,抽象被观察者,抽象消息发布者,规范接口,要发布消息的人需要继承于它,并且实现相应的消息发布、订阅、取消订阅的接口)
——目标知道它的观察者。可以有任意多个观察者观察同一个目标(可以理解为订阅主题);
——提供注册和删除观察者对象的接口。

Observer(抽象观察者,消息订阅者,规范订阅者的接口,也就是说,要订阅消息的人,就需要继承于它,并且实现这些接口)
——为那些在目标发生改变时需获得通知的对象定

  • 1
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 猿与汪的秘密 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值