設計模式學習筆記之-觀察者模式 原

   觀察者模式在實際應用中非常多,觀察者模式定義了一種一對多關係,這樣使得其中的一發生變化時會通知到多。觀察者模式類圖如下:

                 

Obsserver:抽象觀察者接口,通常會定義一個更新接口,使得被觀察者發生更新時能夠更新具體觀察者。

ConcreteObserver:具體觀察者,實現了Obsserver接口,被觀察者發生更新時會更新自身狀態。

Subject:抽象主題即被觀察者,通常會定義添加觀察者、刪除觀察者及通知發佈接口。

ConcreteSubject:具體主題,將觀察者註冊到內部,發生變化時給註冊的觀察者發送消息。

 

雖然類圖定義如上,但是時間應用中不會嚴格按照上述模式進行,設計模式其實是一種重情景化的方法論。觀察者模式在實際應用中非常廣,也非常重要以至於JDK util中都實現了這種模式。觀察者模式通常適合系統間的消息交互,尤其是換聯網系統中的消息系統,也適應與系統間信息的多級傳遞

優點:有利於系統間解耦合,是耦合的雙方依賴於抽象而不依賴於具體,這樣耦合的雙方一方發生變化也不會影響到另一方。

缺點:系統開發調試過程中變得複雜,尤其是觀察者非常多時再通知觀察者過程中會存在性能問題,不多實際應用中大多數都是採用異步觸發,比如消息系統中的發佈訂閱都是異步執行。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章