设计模式——观察者模式

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

场景:

  1. 当一个抽象模型有两个方面,其中一个方面依赖于另一个方面
  2. 当对一个对象的改变需要同时桶盖其他对象,而不知道具体有多少个待改变对象
  3. 当一个对象必须通知其他对象,而它又不能假设其他对象是谁

类图:

图片来自《设计模式之禅》
图片来自《设计模式之禅》
​​​​

优点:

  1. 降低主题和观察者之间的耦合
  2. 支持广播

缺点:

  1. 由于多个观察者的存在,某个或者某些观察者的更新可能导致时间或者空间雪崩式的灾难

更新模式:推/拉

推模式:主题假定知道观察者需要的参数。优势是可以推送确认发生了改变的参数,缺点是对于参数的假定并不一定总是对的

拉模式:主题仅通知观察者发生了变化,具体的参数由观察者去取。优势是观察者可以主动的拉去自己需要的参数,降低了耦合,缺点是观察者并不知道什么参数发生了改变,效率降低

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值