觀察者模式()
觀察者模式是非常常用的一種設計模式在軟件系統中當一個對象的行為依賴於另一個對象的狀態時觀察者模式就相當有用若不使用觀察者模式提供的通用結構而需要實現其類似的功能則只能在另一個線程中不停監聽對象所依賴的狀態在一個復雜系統中可能會因此開啟很多線程來實現這一功能這將使系統的性能產生額外的負擔觀察者模式的意義也就在此它可以在單線程中使某一對象及時得知自身所依賴的狀態的變化觀察者模式的經典結構如圖所示

圖 觀察者模式結構
ISubject是被觀察對象它可以增加或者刪除觀察者IOberver是觀察者它依賴於ISubject的狀態變化當ISubject狀態發生改變時會通過inform()方法通知觀察者
注意觀察者模式可以用於事件監聽通知發布等場合可以確保觀察者在不使用輪詢監控的情況下及時收到相關消息和事件
觀察者模式的主要角色如表所示
表 觀察者模式角色

主題接口的實現如下
[] []
From:http://tw.wingwit.com/Article/program/Java/gj/201311/27819.html