? 觀察者模式( )
觀察者模式是非常常用的壹種設計模式 在軟件系統中 當壹個對象的行為依賴於另壹個對象的狀態時 觀察者模式就相當有用 若不使用觀察者模式提供的通用結構 而需要實現其類似的功能 則只能在另壹個線程中不停監聽對象所依賴的狀態 在壹個復雜系統中 可能會因此開啟很多線程來實現這壹功能 這將使系統的性能產生額外的負擔 觀察者模式的意義也就在此 它可以在單線程中 使某壹對象 及時得知自身所依賴的狀態的變化 觀察者模式的經典結構如圖 所示
圖 ? 觀察者模式結構
ISubject是被觀察對象 它可以增加或者刪除觀察者 IOberver是觀察者 它依賴於ISubject的狀態變化 當ISubject狀態發生改變時 會通過inform()方法通知觀察者
註意 觀察者模式可以用於事件監聽 通知發布等場合 可以確保觀察者在不使用輪詢監控的情況下 及時收到相關消息和事件
觀察者模式的主要角色如表 所示
表 ? 觀察者模式角色
主題接口的實現如下
lishixinzhi/Article/program/Java/gj/201311/27819