設計模式九 觀察者模式

2021-09-27 09:39:07 字數 1921 閱讀 2365

定義物件間一種一對多的依賴關係,使得每當乙個物件改變狀態,則所有依賴於它的物件都會得到通知並被自動更新。

發布者/訂閱者模式。

事件監聽、swing中都有用到。

時間核心類

/**

* 事件

* @author

zzf * @date 2018/9/2 15:30. */

public

class

event

public

long

gettimestamp()

public

void settimestamp(long

timestamp)

public

object gettarget()

public

void

settarget(object target)

public

method getcallback()

public

void

setcallback(method callback)

public

object getsource()

public

void

setsource(object source)

public

string gettrigger()

event settrigger(string trigger)

@override

public

string tostring() ';

}}

public

class

eventlistener

private

void

trigger(event e)

catch

(exception e1)

}protected

void

trigger(enum call)

trigger(

this

.events.get(call).settrigger(call.tostring()));

}}

觀察者

/**

* 觀察者

* @author

zzf * @date 2018/9/2 15:29. */

public

class

observer

}

被觀察者

/**

* 被觀察者

* @author

zzf * @date 2018/9/2 15:28. */

public

class subject extends

eventlistener

public

void

remove()

}

public enum subjecteventtype

test

public

class

observertest );

subject subject = new

subject();

//新增監聽

subject.addlistener(subjecteventtype.on_add, observer, advice);

subject.add();

subject.remove();

} catch

(exception e)

}}

》關聯行為場景

》事件多級觸發場景

》跨系統的訊息交換場景,如訊息佇列的處理機制。

自己感覺能看懂,但是在實際中應用還是有點懵。

設計模式九 觀察者模式

定義物件間一種一對多的依賴關係,使得每當乙個物件改變狀態,則所有依賴於它的物件都會得到通知並被自動更新。發布者 訂閱者模式。事件監聽 swing中都有用到。時間核心類 事件 author zzf date 2018 9 2 15 30.public class event public long g...

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

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

PHP設計模式系列(九) 觀察者模式

觀察者模式 observer pattern 定義物件間的一種一對多依賴關係,使得每當乙個物件狀態發生改變時,其相關依賴物件皆得到通知並被自動更新。觀察者模式又叫做發布 訂閱 publish subscribe 模式 模型 檢視 model view 模式 源 source listener 模式或...