Head First Design Pattern 讀書筆記(2) 觀察者模式

Head First Design Pattern 讀書筆記(2) Observer Pattern 觀察者模式

##Observer Pattern 類圖 觀察者模式類圖java

##定義 觀察者模式:在對象間定義一個一對多的關係,當其中一個的對象發生改變時,全部依賴於這個對象的對象(即觀察者們)都會自動更新或作執行某些行爲。框架

##幾個OO的原測異步

  1. 儘可能以鬆耦合的方式處理對象間關係-->軟件工程時候學的「高內聚,低耦合」的好處

##關於觀察者模式server

  1. 被觀察對象通知觀察者可使用推送的方式(類圖中帶參數的notifyAction方法),也可使用觀察者本身獲取更新的方式(類圖中無參的notifyAction方法)。我的感受後者更加靈活,由於這樣被觀察對象只負責通知,不用給觀察者傳遞任何數據,觀察者在更新的時候根據本身須要獲取數據,而且這樣就能作到異步更新了。不過上面類圖有一點很差,就是具體觀察者類只能繼承觀察者抽象類而不是實現觀察者接口了。若是要用實現接口的方式,應該應該將上面的AbstractObserver類改成接口,將notifyAction()改成notifyAction(AbstractSubject a)便可。
  2. 不少GUI框架的事件與監聽器機制都是經過觀察者模式實現的。
  3. java有本身的觀察者模式實現方法,使用java.util.Observer接口和java.util.Observable類實現。
  4. 被觀察對象根據實現不一樣,通知觀察者的順序不必定按照list的順序,最好不要在其餘地方有依賴這個通知順序的邏輯。
相關文章
相關標籤/搜索