設計模式-08 觀察模式

類圖

推模式

設計模式-08 觀察模式

拉模式

設計模式-08 觀察模式

推拉模式

獲取觀察對象的變更信息,有推和拉兩種模式

  • 推模式:ConcreteObserver通過Observer.update中的changeInfo參數,獲取觀察對象的變更信息
  • 拉模式:ConcreteObserver.update的方法實現中,通過調用IchangeSource.getChangeInfo接口獲取觀察對象的變更信息

建議

  • 觀察對象複雜,觀察者需要提示,推模式比較合適
  • 觀察對象簡單,拉模式比較合適

遵循的設計原則

設計原則:設計模式-01 六大設計原則

  1. 開閉原則(OCP):可隨時添加新的觀察者
  2. Liskov替換原則(LSP):Subject.notifyAll中,通過調用Observer.update方法通知具體的觀察者(子類可以替換父類)
  3. 依賴倒置原則(DIP):Subject沒有依賴具體的觀察者


分享到:


相關文章: