觀察者模式定義了一種一對多的依賴關係.
簡單的解釋就是多個觀察者物件,一同觀察某個主題物件,並隨著主題物件的更新,而各自進行相應的更新.
舉個例子,動物園裡飼養員是乙個主題物件,而這個飼養員所餵養的動物,就是乙個個的觀察者物件.
在這個例子中的飼養員比較奇葩,他對它所餵養的動物,統一喂同一種食物,雖然動物不得不吃這些食物,但對這種食物都有著各自的看法.
首先我們知道,所有的飼養員,雖然性格不同,但是,他們必須都要有飼養員應該有的素質,這樣才有資格成為乙個飼養員.所以,我們首先要定義乙個介面,來規範一下我們的飼養員.
public inte***ce siyangyuan
動物園裡有許多的動物,動物都是要吃飯的,而飼養員的首要任務,就是要讓動物吃飽,喝好,健康快樂的成長。我們接收的動物,也是有一定的要求的,就是,都要會吃。吃完,還得要會說出改進意見。我們規範一下動物們。
public inte***ce animal
然後,這裡有幾個小動物。
這是豬
public class pig implements animal
}
這是綿羊
public class sheep implements animal
}
這是老虎
public class tiger implements animal
}
這幾隻動物還是很有性格的,每個人對於每天所吃的東西,所要表達的情感還是有很大的差距的。不過說歸說,每次飼養員喂東西還都是乖乖的吃。畢竟,還是要活命的嗎。
下邊是我們根據上述的要求,聘請的一位飼養員,小李
public class xiaoli implements siyangyuan
public void deleteanimal(animal a)
public void feedanimal(string str)
}}
如你所見,我們的小李很能幹,可以接受新動物,也可以送出不喜歡的動物,關鍵是,任勞任怨的給每個接收過來的動物餵食。
這樣以後的事情,就簡單了。
當然,還可以多招乙個飼養員,每個飼養員餵養動物的食物不同,讓各個動物根據自己的口味,自行選擇想要跟隨的飼養員。
另外再說一句,各大平台實時跟隨氣象台更新天氣預報的例子,也是這種模式的體現。
Java設計模式之觀察者模式
觀察者模式是乙個使用率非常高的模式,觀察者 observer 模式又名發布 訂閱 publish subscribe 模式,這個模式有乙個非常重要的作用就是解耦,將被觀察者和觀察者之間的依賴降到最小.像我們進場使用的adapter就使用了觀察者模式,當資料集發生變化的時候,通知adapter更新.定...
Java設計模式之觀察者模式
觀察者模式定義了一些列物件之間的一對多關係。當乙個物件改變狀態,其他依賴者都會收到通知。觀察者模式提供了一種物件設計,讓主題和觀察者之間松耦合。uml圖 觀察者介面 觀察者介面 public inte ce observer 觀察者a 觀察者a public class aimplements ob...
java設計模式之觀察者模式
uml設計 定義 定義物件間一種一對多的依賴關係,使得當每乙個物件改變狀態,則所有依賴於它的物件都會得到通知並自動更新。示例 定義乙個主題 被觀察者 public inte ce subject 定義乙個觀察者 public inte ce observer 定義具體的主題實現類 public cl...