设计模式-观察者模式-Observer

?观察者模式-Observer

源码地址: https://github.com/mumushuiding/golang-design-pattern/tree/master/09_Observer

 

❓ 问题

采用观察者模式,当一个对象的状态发生变化 时,它会? 通知 所有依赖它的对象。

✔️ 解决方法

一个? 可观察 对象可以被多个? 观察者 对象监督。可观察对象在运行时? 登记 观察者,当它状态发生变化时,都会? 通知 所有的观察者。

观察者模式使用两种方法把最新的状态发送给观察者:

  • 1)把新的状态 推送 给观察者
  • 2)观察者自己去 拉取 数据

⚡️类图

 

?参与者

  • IObservable (可观察的接口)。接口中含有对观察者的? 登记 和❌ 注销 以及抽象方法取状态。
  • IObserver (观察者接口)。是可观察类(Observable)的回调接口。接口由一个观察者实现
  • ? Observable (可观察类)。包含指向观察类对象的引用列表。
  • ? Observer (观察者类)。

?评价

?优点

  • 观察者可以动态添加和删除
  • 可观察类和观察者 互不依赖

?缺点

  • 观察者过多时,发布消息需要消耗过多时间
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值