設計模式之觀察者模式學習

2021-10-03 13:50:13 字數 1407 閱讀 1202

observer模式是行為模式之一,它的作用是當乙個物件的狀態發生變化時,能夠自動通知其他關聯物件,自動重新整理物件狀態。

observer模式提供給關聯物件一種同步通訊的手段,使某個物件與依賴它的其他物件之間保持狀態同步。

subject(被觀察者)

被觀察的物件。當需要被觀察的狀態發生變化時,需要通知佇列中所有觀察者物件。subject需要維持(新增、刪除、通知)乙個觀察者物件的佇列列表。

concretesubject

被觀察者的具體實現。包含一些基本的屬性狀態及其他操作。

observer(觀察者)

介面或者抽象類。當subject的狀態發生變化時,observer物件將通過乙個callback函式得到通知。

concreteobserver

觀察者的具體實現。得到通知後將完成一些具體的業務邏輯處理。

- 偵聽事件驅動程式設計中的外部事件

- 偵聽某個物件的狀態變化

- 發布者/訂閱者模型中,當乙個外部事件(新的產品,訊息的出現等等)被觸發時,通知郵件列表中的訂閱者

-

以部落格發表文章為例,先定義乙個被觀察者物件,並繼承observable

public

class

bloguser

extends

observable

}

定義乙個文章類

public

class

article

public

void

setaruicletitle

(string aruicletitle)

public string getaruiclecontent()

public

void

setaruiclecontent

(string aruiclecontent)

}

有了被觀察者之後,定義觀察者物件,實現observer介面,得到通知之後處理一些業務邏輯

public

class

myobserver

implements

observer

}

所有角色都定義完畢,之後就可以進行測試了

public

static

void

main

(string[

] args)

執行結果

設計模式學習之觀察者模式

設計模式之觀察者模式 生活 最近弄了臺準系統遊戲本,第一次接觸準系統這個概念。說白就是品牌機的私生子,都是乙個媽生的。然後私生子一般價效比都比原配的好。但私生子始終是私生子,是不會被品牌商認可的,沒保修滴,要修只能到賣家那。哥屌絲乙個,買電腦只能是想以最低的 買好的電腦了。保修之類的,i dont ...

設計模式學習之 觀察者模式

觀察者模式包含部分 1 抽象被觀察者 無具體意義,被觀察者需要實現該幾口或是繼承該抽象類 2 具體被觀察者 包含對觀察者資訊的維護,比如對觀察者的增減,包括對觀察者的資訊通知以及需要讓每個觀察者的訊息 3 抽象觀察者 無具體業務邏輯,包含具體觀察者必須實現的介面或似乎繼承的抽象類 4 具體觀察者 抽...

設計模式之觀察者模式

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