23種設計模式之觀察者模式(Observer)

2021-09-08 19:51:26 字數 1052 閱讀 6657

觀察者模式又稱為發布—訂閱模式、模型—檢視模式、源-***模式或從屬者(dependents)模式,是一種物件的行為型模式。它定義了物件之間的一種一對多的依賴關係,使得每當乙個物件狀態發生改變時,其相關依賴物件都得到通知並被自動更新。觀察者模式的優點在於實現了表示層和資料層的分離,並定義了穩定的更新訊息傳遞機制,類別清晰,抽象了更新介面,使得相同的資料層可以有各種不同的表示層。

優點:1)抽象了主體與observer之間的耦合關係。

2)支援廣播方式的通訊。

使用場景:

1)對乙個物件的修改涉及對其它物件的修改,而且不知道有多少物件需要進行相應修改。

2)物件應該能夠在不用假設物件標識的前提下通知其它物件。

public

inte***ce

observer

public

inte***ce

subject

public

class

docexplorer : observer

}

///

///公文類

///

public

class

officedoc : subject

//////

解除某docexplorer物件與officedoc的關聯關係

///

///public

void

detach(observer docexplorer)

//////

通知所有的docexplorer物件

23種設計模式 觀察者模式

在軟體構建過程中,我們需要為某些物件建立一種 通知依賴關係 乙個物件 目標物件 的狀態發生改變,所有的依賴物件 觀察者物件 都將得到通知。如果這樣的依賴關係過於緊密,將使軟體不能很好地抵禦變化。使用物件導向技術,可以將這種依賴關係弱化,並形成一種穩定的依賴關係。從而實現軟體體系結構的松耦合。定義物件...

23大設計模式之觀察者模式

常用的設計模式有23種,總體來說設計模式分為三大類 1,建立型模式,共五種 工廠方法模式 抽象工廠模式 單例模式 建造者模式 原型模式。2,結構型模式,共七種 介面卡模式 裝飾器模式 模式 外觀模式 橋接模式 組合模式 享元模式。3,行為型模式,共十一種 策略模式 模板方法模式 觀察者模式 迭代子模...

設計模式之觀察者模式

首先說了乙個自己的小例子吧,前兩天我的乙個朋友來找我玩,因為路途比較遠,我需要知道他的位置,然後安排好時間去接他,那麼在這個例子中,我就是乙個觀察者,需要時時刻刻觀察他的位置,我的朋友就是乙個被觀察者。那麼需要知道我朋友的位置,就有兩種方式,第一,我自己打 問,第二,我的朋友告訴我,下面我們來看看這...