觀察者模式(Observer) 屬于對象的
行為模式。
1. 定義
定義對象間的一種一對多的關系,當一個對象的狀態發生改變時,所有依賴它的對象都得到通知,并被自動更新。
2. 使用的原因
在應用程序開發過程中,往往都要求用戶界面和業務邏輯分離,劃定清晰的界限.因為應用程序要求能快速的更改用戶界面并且不能對應用程序其他部分產生連帶影響,而且業務邏輯也會發生變化并要求這一切變化與用戶界面無關.觀察者(observer)就是解決此問題最常用的設計模式,它非常有助于在系統中各個對象之間劃分清晰的界限。
觀察者模式在界面設計中應用廣泛。
還有一種常見的情況,一個軟件系統常常要求在某一個對象發生變化的時候,某些其它的對象做出相應的改變,而觀察者模式是解決這個問題的一個低耦合度的設計方案,它能夠減少對象之間的耦合以便更加利于系統的復用。
3. 適用的情況舉例
eg1.
4. 類圖結構及說明
1)示意性類圖如下所示:

2)類說明
i)抽象主題Subject:用于將所有的對象引用保存在一個聚集中(比如Vector對象)里,每個Subject可以有任何數量的觀察者。它又被叫做抽象觀察者(Observable)角色,一般使用抽象類或接口實現。
ii)抽象觀察者Observer:為所有的具體觀察者定義一個接口,在得到Subject的通知時更新自己。
iii)具體主題ConcreteSubject:將有關狀態存入具體觀察者對象。在具體主題的內部狀態改變時,給所有登記過的觀察者發出通知。又被稱為具體被觀察者角色。
iv)具體觀察者ConcreteObserver:實現了抽象觀察者Observer,在被觀察者發出通知時,將自行執行update方法更新。
5. 使用舉例
待續。
6. 參考文章
1)《Pattens In Java》
2)《Java與模式》
3)http://i.cn.yahoo.com/whj1234586/blog/p_34/
4)http://www.999qc.cn/Article/NET/15500/
posted on 2008-05-14 07:56
阿蜜果 閱讀(4829)
評論(4) 編輯 收藏 所屬分類:
Design Pattern