观察者模式(有时又被称为发布/订阅模式),一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。
该模式的基本前提包含两个角色:观察者和主体(熟悉 Smalltalk MVC 的人将这些术语分别称为视图和模型)。 在用户界面的环境中,观察者是负责向用户显示数据的对象。 另一方面,主体表示从问题域中模拟的业务抽象。 正如图 1 中所描述的一样,
在subject中,应有以下方法:
注册为观察者:registerObserver(IObserver)
解除观察者:removeObserver(IObserver)
通知观察者:notifyObservers(Object data)
在observer中应该对subject的通知执行自己的更新:
update(args)
在java.util包中有观察者模式的代码:
(class)
(Interface) java.util.Observer------观察者