觀察者模式定義了物件之間的一對多依賴,讓多個觀察者物件同時監聽乙個主體物件。當主體物件發生變化時,它的所有依賴者(觀察者)都會收到通知並更新。
觀察者模式主要用於在關聯行為之間建立一套觸發機制的場景,支援廣播通訊。
觀察者模式也被稱為 發布-訂閱模式。
場景:新聞社開發了一套新聞訂閱服務,他們會給每個訂閱了該服務的使用者推送早間新聞郵件。
郵件伺服器 mailserver
public class mailserver extends observable
public void publishmail(mailcontent mailcontent)
public string getservername()
public static mailserver getmailserver()
}
新聞內容 mailcontent
public class mailcontent
public string gettheme()
public string getcontent()
}
郵件訂閱者 mailsubscriber
public class mailsubscriber implements observer
@override
public void update(observable o, object arg)
}
測試 test
public class test
}
通過輸出結果可以發現,所有實現了 observer 介面的 訂閱者 都可以收到伺服器的通知。
Android設計模式系列 觀察者模式
觀察者模式,是一種非常常見的設計模式,在很多系統中隨處可見,尤其是涉及到資料狀態發生變化需要通知的情況下。本文以abstractcursor為例子,展開分析。觀察者模式,observer pattern,是乙個很實用的模式,本人曾經接觸到的各種平台以及曾經參與專案中列印模板直譯器中都用到了此模式。1...
設計模式系列 觀察者模式基本
觀察者模式屬於設計模式中的行為型模式,也叫發布 訂閱模式,實際上是一種事件監聽機制。基本思想是 有觀察者和被觀察者兩種角色,當被觀察者的行為有變化的時候 方法被呼叫 觀察者就能被通知到。想成為被觀察者的觀察者,需要在被觀察者那裡登記。角色 watcher 觀察者介面 conwatcher 具體觀察者...
Android設計模式系列 觀察者模式
觀察者模式,是一種非常常見的設計模式,在很多系統中隨處可見,尤其是涉及到資料狀態發生變化需要通知的情況下。本文以abstractcursor為例子,展開分析。觀察者模式,observer pattern,是乙個很實用的模式,本人曾經接觸到的各種平台以及曾經參與專案中列印模板直譯器中都用到了此模式。1...