設計模式系列 觀察者模式基本

2021-07-03 12:36:33 字數 1250 閱讀 5420

觀察者模式屬於設計模式中的行為型模式,也叫發布-訂閱模式,實際上是一種事件監聽機制。

基本思想是:有觀察者和被觀察者兩種角色,當被觀察者的行為有變化的時候(方法被呼叫),觀察者就能被通知到。想成為被觀察者的觀察者,需要在被觀察者那裡登記。

角色

watcher(觀察者介面)

conwatcher(具體觀察者)

watched(被觀察者介面)

conwatched(具體被觀察者)

**

觀察者抽象

public

inte***ce watcher

具體觀察者

public

class

conwatcher

implements

watcher

}

被觀察抽象

public

inte***ce watched

具體被觀察者

public

class

conwatched

implements

watched

@override

public

void

detach(watcher w)

/*** 通知所有觀察者

*/@override

public

void

notifywatcher()

}/**

* 被觀察的事件

*/public

void

change()

}

測試

public

class client

}

執行結果:

com

.pattern

.observe

.one

.conwatcher

@9945ce被通知了

com.pattern

.observe

.one

.conwatcher@b5dac4被通知了

由此可見,兩個觀察物件都被通知了

設計模式系列 觀察者模式

觀察者模式定義了物件之間的一對多依賴,讓多個觀察者物件同時監聽乙個主體物件。當主體物件發生變化時,它的所有依賴者 觀察者 都會收到通知並更新。觀察者模式主要用於在關聯行為之間建立一套觸發機制的場景,支援廣播通訊。觀察者模式也被稱為 發布 訂閱模式。場景 新聞社開發了一套新聞訂閱服務,他們會給每個訂閱...

Android設計模式系列 觀察者模式

觀察者模式,是一種非常常見的設計模式,在很多系統中隨處可見,尤其是涉及到資料狀態發生變化需要通知的情況下。本文以abstractcursor為例子,展開分析。觀察者模式,observer pattern,是乙個很實用的模式,本人曾經接觸到的各種平台以及曾經參與專案中列印模板直譯器中都用到了此模式。1...

Android設計模式系列 觀察者模式

觀察者模式,是一種非常常見的設計模式,在很多系統中隨處可見,尤其是涉及到資料狀態發生變化需要通知的情況下。本文以abstractcursor為例子,展開分析。觀察者模式,observer pattern,是乙個很實用的模式,本人曾經接觸到的各種平台以及曾經參與專案中列印模板直譯器中都用到了此模式。1...