设计模式 - 观察者模式

用途

这个模式用的场合还是很多,如消息、状态通知,当事件A发生时,它就通知某个观察者(监听者),观察者接到消息后,再做后续处理。


优点

我们可以用另外一个方法实现上面的功能,让观察者实时查询事件A是否发生,如果发生了就处理,如果没有发生就接着查询。这样首先就是资源占用会比较多;第二安全性都不好,因为如果有两个观察者同时观察一个事件A,那么这首先就有两个线程同时调用事件A的一个接口,这就牵扯线程安全问题;第三是事件A和观察者之间过于耦合,如果有多个事件和多个观察者,结构显得很臃肿。
所以上面的缺点正好对应的是利用回调的观察者模式的优点。

UML类图



1. 事件A、B和观察者A、B、C之间是通过一个接口通信的;
2. 一个事件可以有多个观察者,一个观察者也可以监听多个事件;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值