JS設計模式 觀察者模式

2021-10-10 02:38:37 字數 2397 閱讀 6203

又來更新了,昨天學了白賀翔老師的觀察者模式,分享一下,直接看**!

<

!doctype html>

"en"

>

"utf-8"

>

"viewport" content=

"width=device-width, initial-scale=1.0"

>

document<

/title>

"./commonutil.js"

>

<

/script>

<

/head>

"utf-8"

>

// js觀察者模式:對程式中的某乙個物件進行實時觀察,當該物件發生變化,進行通知

// 有兩個重要的角色:觀察者 被觀察者

// 經典案例:訂報紙(報社(也叫發布者,被觀察者),訂閱者(觀察者))

// 發布者 被觀察者

var publish=

function

(name)

;// publish類例項物件發布訊息的方法

publish.prototype.deliver=

function

(news));

return

this

;//鏈式程式設計};

// 因為所有的訂閱者都是函式型別fn,所以直接在function的原型上新增方法

// 訂閱者 觀察者 具體的乙個訂閱者去訂閱報紙的方法

function.prototype.subscriber=

function

(publish));

if(!alreadyexists)

return

this;}

;// 訂閱者 觀察者 具體的乙個訂閱者去取消訂閱報紙的方法

function.prototype.unsubscriber=

function

(publish));

return

this

;//鏈式程式設計 };

window.onload=

function()

;var sub2=

function

(news)

;// 訂閱者訂閱報紙 執行方法

sub1.

subscriber

(pub1)

.subscriber

(pub2)

.subscriber

(pub3)

; sub2.

subscriber

(pub1)

.subscriber

(pub2)

;// 事件繫結 bh.eventutil.addhandler(document.getelementbyid('pub1'),'click',function());

bh.eventutil.

addhandler

(document.

getelementbyid

('pub2'),

'click'

,function()

);bh.eventutil.

addhandler

(document.

getelementbyid

('pub3'),

'click'

,function()

);// 取消訂閱

sub2.

unsubscriber

(pub2);}

;<

/script>

"button" id=

"pub1"

value

="第一家報社"

/>

"text" id=

"text1"

/>

>

"button" id=

"pub2"

value

="第二家報社"

/>

"text" id=

"text2"

/>

>

"button" id=

"pub3"

value

="第三家報社"

/>

"text" id=

"text3"

/>

>

"sub1" cols=

"30" rows=

"5">

<

/textarea>

"sub2" cols=

"30" rows=

"5">

<

/textarea>

<

/body>

<

/html>

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

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

js與設計模式 觀察者模式

觀察者模式可以幹什麼?當 div繫結onclick時候就會觸發事件,當div沒有繫結時候就不會觸發。div.onclick functionclick 所以dom與js之間就存在這樣乙個觀察者模式。function click event,c 實現很簡單 基礎類庫中 function label l...

設計模式 觀察者模式

觀察者模式定義了物件間一對多的依賴關係,乙個物件發生變化時,所有依賴它的物件都得到通知並被自動更新。本文主要闡述觀察者模式在分布式scada人機介面中的使用,利用這種模式使得人機介面顯示效率更高。發布者 郵局 觀察者 參與者 讀者 訂閱者 當郵局收到報社新雜誌的時候,即郵局狀態發生了改變,於是郵局把...