设计模式(3)-观察者模式(Observer)(行为型)
类似于报社或杂志的订阅。出版者加订阅者,只是在观察者模式中用主题(subject)和观察者(Obserer)来表示。
定义:定义了对象间的一对多依赖关系,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。
要点
n 观察者模式定义了对象之间的一对多关系
n 主题(也就是可观察者)用一个共同的接口来更新观察着
n 观察着与主题之间用松耦合方式结合(Loosecoupling),主题不知道观察者的细节,只知道观察着实现了观察者接口
n 使用此模式时,你可以从主题处推(Push)或拉(Pull)数据(推的方式被认为更正确)
n 有多个观察者时不可以依赖特定的通知次序
n Java有多种观察这模式的实现包括通用的java.util.Observable
n 注意java.util.Observable实现所到来的问题
n 如果有必要的话可以实现自己的Observable
n Swing大量使用观察着模式,许多GUI框架也是如此
n 此模式被应用到许多地方