首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

浅谈观察者模式

观察者模式是个很好的模式,如果没有观察者模式,当要监控一个动作发生时,就要启动一个线程去检测这个动作是否发生了,然后再做相应的事情,是多么的浪费CPU资源。

看下观察者接口,你肯定要问为什么要是一个接口,我告诉你这就是面向接口编程:

具体的执行观察动作的类是这样的:

看到这似乎什么都干,就是这样,因为没有演员呢,观众也不知道干什么。那看下被观察者,可以理解为演员:

也是抽象的,这就是为什么要定义观察者接口的原因了,因为让他们在抽象层耦合,应对变化。具体的做动作的类是下面这样的,当然他得通知观察者,要不然观察者也不会知道发生了什么:

看下客户端:

整体来看,观察者模式似乎没有什么,但是在互联网应用最广泛的大名鼎鼎的消息中间件,用的就是观察者模式。

Define a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically.

定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并自动更新。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180124G10LWI00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券