Observer(观察者模式)是一个非常有意思的模式,在实际应用中非常的广泛,诸如时间监听模型,Tomcat中对组件生命周期的控制。同时Observer模式在一些场景下会与其他模式配合使用,如Adapter(适配器模式)、Strategy(策略模式)等。
由于Observer的使用非常的灵活,并鉴于本人目前的水平,简要的从以下几个方面介绍Observer:
- Observer的含义
- Observer的示例Demo
- Tomcat中的Observer
- 小结Observer
- 参考资料
一、Observer的含义
在《设计模式》一书中对Observer模式的意图是这样描述的:“定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知并自动更新”。
自动处理通知:当某个事件发生时,这些对象都需要得到通知。
同时,Observer模式,又称为依赖(Dependents)或发布-订阅(Publish-Subscribe)。下面将通过一个简单的示例来说明问题。
二、Observer的示例
2.1 示例One
引用一个来自《大话设计模式》中的场景:员工偷懒玩股票,让前台的MM监视老板是否回来,如果老板回来则通知他们,根据这个抽象出如下对象:
员工(处理)、前台MM(监听)、老板(事件)
也就是说