【設計模式】Java設計模式第一課之觀察者模式

我們可以用一個生活中的情景來認識一下觀察者模式.


在這個時代,可能只有我們家裏的老年人還保留着每天看報紙的習慣.報社負責生產內容,把它們組織到一張報紙上,每天進行印刷,然後送到每一個花錢訂閱了報紙的用戶家裏.這樣老人家就可以瀏覽一下每天發生的事情了.


這就是觀察者模式最貼切的比喻.訂閱者和報社是一對多的關係,每天只要更新了內容,就會統一把報紙送到用戶的手裏,當然,如果你不想訂閱了,也可以退訂.報社不知道你的狀態,也不會關心你到底有沒有看報紙,它的職責就是每天準時的把報紙送到你的家裏.


下面是我看書的時候,總結的關於觀察者模式的幾個要點:

  • 設計原則:爲了交互對象之間的鬆耦合而努力.
  • 定義了對象之間的一對多依賴,這樣一來,當一個對象發生了改變時,它的所有依賴者都會受到通知並自動更新.
  • 觀察者模式提供了一種對象設計,讓可觀察者和觀察者之間鬆耦合.
  • 可觀察者是有狀態的x
  • 可觀察者用一個共同的接口來更新觀察者
  • 可觀察者不知道觀察者的細節,只知道觀察者實現了觀察者接口
  • 觀察者應該在可觀察者那裏進行註冊,以便於它能接收到可觀察者推送的信息
  • 觀察者類裏一般應該包含一個可觀察者接口的實例作爲成員變量,這樣調用registerObserver()方法才能爲自己進行註冊.
  • 鬆耦合的設計之所以能讓我們建立有彈性的OO系統,能夠應對變化,是因爲對象之間的互相依賴降到了最低.
  • Java有內置的觀察者模式,在Java.util包中的Observer接口和Observable類,可以使用推和拉兩種方式
  • 要認識到Java內置的觀察者模式的侷限性,因爲Observer是一個類,而不是一個接口
  • MVC模式是觀察者模式的最佳代表
  • 觀察者模式也被應用於JavaBeans,RMI中.



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