- 设计模式之观察者模式(Observer Pattern)
- 代码下载
- 1.概念定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动刷新。
2.模型图
场景1:狗叫,主人醒,猫叫
观察者:主人,猫;
被观察者:狗
狗叫主动通知:主人,猫。
扩展点:观察者可扩展。
- 场景2:观察者:主人,猫;
被观察者:狗
狗叫主动通知:主人,猫。
扩展点:观察者,被观察者都可扩展,把狗叫抽象出来,扩展为其他叫,也通知。
- 场景3:狗叫,主人醒,猫叫,老鼠跑
观察者:主人醒,猫叫,老鼠跑等.
被观察者:狗
扩展点:观察者可扩展,被观察者都可扩展。狗(或其他叫)可能惊醒很多动物动作。
总结:场景1,场景2,是被观察者主动通知模式,场景3是观察者订阅模式。
3.实际应用
点击一个窗体按钮,其他窗体各自干各自的事情。
代码下载