軟體設計模式 觀察者模式(Observer)

2021-07-11 07:34:35 字數 1640 閱讀 7397

當物件間存在一對多關係時,則使用觀察者模式(observer pattern)。比如,當乙個物件被修改時,則會自動通知它的依賴物件。觀察者模式屬於行為型模式。

1、拍賣的時候,拍賣師觀察最高標價,然後通知給其他競價者競價。

2、西遊記裡面悟空請求菩薩降服紅孩兒,菩薩灑了一地水招來乙個老烏龜,這個烏龜就是觀察者,他觀察菩薩灑水這個動作。

觀察者模式使用三個類 subject、observer 和 client。

subject 物件帶有繫結觀察者到 client 物件和從 client 物件解綁觀察者的方法。我們建立 subject 類、observer 抽象類和擴充套件了抽象類 observer 的實體類。

//建立 subject 類。

public

class subject

public

void

setstate(int state)

public

void

attach(observer observer)

public

void

notifyallobservers()}}

//建立 observer 類。

public

abstract

class observer

//建立實體觀察者類。

public

class

binaryobserver

extends

observer

@override

public

void

update()

}

//建立實體觀察者類。

public

class

octalobserver

extends

observer

@override

public

void

update()

}

//建立實體觀察者類。

public

class

hexaobserver

extends

observer

@override

public

void

update()

}

//使用 subject 和實體觀察者物件。

public

class observerpatterndemo

}

輸出結果:

first state change:15

hex string:f

octal string:17

binary string:1111

second state change:10

hex string:a

octal string:12

binary string:1010

軟體設計模式 觀察者模式

參考 定義了一種一對多的依賴關係,讓多個觀察者物件監聽某乙個主題物件。這個主題物件在狀態發生變化時,會通知所有觀察者物件,使它們能夠自動更新自己。include observer.h include include using namespace std observer observer obse...

軟體設計模式之觀察者模式

軟體設計模式我的個人理解 1.寫過的東西不要重複寫,浪費人力,畢竟現在都提倡低碳環保。2.軟體不是搬磚,一層一層不停的壘上去,那是苦力,善於發現共通的地方,模組化拼接。3.軟體不是寫給自己的,大家一起要能看,這是全人類的財富,符合統一規範,也要別人能理解你,更輕鬆的理解你。觀察者模式 首先把其他小名...

python 設計模式 觀察者 觀察者設計模式

在觀察者設計模式這種模式中,物件被表示為等待事件觸發的觀察者。一旦發生指定的事件,觀察者就會關注該主體。當事件發生時,主體告訴觀察者它已經發生。以下uml圖表示觀察者模式 如何實現觀察者模式?現在讓我們來看看如何實現觀察者模式。參考以下實現 import threading import time ...