定義物件間一種一對多的依賴關係,使得每當乙個物件改變狀態,則所有依賴於它的物件都會得到通知並被自動更新。
發布者/訂閱者模式。
事件監聽、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() ';
}}
publicclass
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
publicclass
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 模式或...