5 觀察者模式on方法的使用

2021-10-05 20:51:09 字數 2663 閱讀 1580

"./jquery.min.js"

>

<

/script>

// 定義觀察者模式中的 on 方法

// 也就是向觀察者模式中的訊息盒子,新增要執行的方法

// 新增要執行的方法

// 新增的方法,要分為,方法的型別 和 方法的內容

// 方法型別(type): 請家長 寫檢查 沒收手機

// 方法內容(function): 請家長 : 請老爸 請老媽 請爺爺 請奶奶 .....

// 寫檢查 : 班主任1000字 教導主任2000字 校長3000字 ....

// 沒收手機 : 沒收1小時 沒收1天 沒收1輩子 ....

// 相當於,乙個是事件型別,乙個是事件處理函式

// 實現步驟和原理

// 新增新的方法:

// 先判斷,事件型別是否已經存在

// 如果型別已經存在,就直接在型別中,新增函式

// 如果型別不存在,就要先新增型別,同時在型別中新增函式

// 特別注意:

// 新增新增的函式,一定是函式名稱或者變數名稱

// 不能直接定義 function(){} 函式

// 因為直接定義的函式,是無法刪除的,他們的儲存位址不同

class

observer;}

// type,就是事件型別

// fun,就是具體的函式

on(type,fun)

else

}emit()

off()}

const observer =

newobserver()

;// 第一次新增打**型別,是新增型別,並且賦值乙個陣列,儲存函式

observer.on(

'打**'

, da1)

;// 打**,型別已經存在,直接向陣列中新增函式就可以了

observer.on(

'打**'

, da2)

;// 寫檢查

observer.on(

'寫檢查'

, jian1)

; observer.on(

'寫檢查'

, jian2)

; observer.on(

'寫檢查'

, jian3)

;// 沒收手機

observer.on(

'沒收手機'

, mo1)

; observer.on(

'沒收手機'

, mo2)

; observer.on(

'沒收手機'

, mo3)

;function

da1(

)function

da2(

)function

jian1()

function

jian2()

function

jian3()

function

mo1(

)function

mo2(

)function

mo3(

)// 總結

// on方法

// 1, 訊息盒子可以是陣列,也可以是物件

// 物件是正常操作

// 陣列如果索引是字串,也可以定義,只是,不會影響陣列length的長度

// 不能用 for 或者 foreach 或者 jquery的each 迴圈遍歷 , 只能使用 for...in 迴圈

// 2, on方法的基本思路過程

// 如果訊息盒子中,沒有這個 型別 this.msg[型別] === undefined

// 新增型別,並且以陣列的形式,儲存函式方法 this.msg[型別] = [函式方法]

// 如果訊息盒子中, 有這個 型別

// 直接在儲存的陣列中,新增函式方法 this.msg[型別].push(函式方法)

// 陣列中,可以新增索引是字串的單元

// 不會影響陣列 length 的長度

// 陣列的索引,是字串形式

const arr =

; arr[

'a1']=

'a1'

; arr[

'a2']=

'a2'

; arr[

'a3']=

'a3'

; arr[

'a4']=

'a4'

; arr[

'a5']=

'a5'

; arr.

foreach

(function

(item,key)

)// 不可以用 不會報錯但是不會執行

for(

let key in arr)

// 可以用

$(arr)

.each

(function

(key,item)

)// 不可以用 不會報錯但是不會執行

<

/script>

python觀察者模式 python 觀察者模式

python 觀察者模式 前言e 寫的倉促就不截uml類圖了,書本chapter10,p313能看到圖 一旦觀察的主題有更新,就會通知到觀察者們,下面的例子是最簡單的乙個觀察者範例,假設這是一群投機分子密切關注 軍 火 倉庫的產品與數量變動 class inventory def init self...

觀察者模式

觀察者模式 observer 完美的將觀察者和被觀察的物件分離開。舉個例子,使用者介面可以作為乙個觀察者,業務資料是被觀察者,使用者介面觀察業務資料的變化,發現資料變化後,就顯示在介面上。物件導向設計的乙個原則是 系統中的每個類將重點放在某乙個功能上,而不是其他方面。乙個物件只做一件事情,並且將他做...

觀察者模式

觀察者模式定義了一種一對多的依賴關係,讓多個觀察者物件同時監聽某乙個主題物件。這個主題物件在狀態上發生變化時,會通知所有觀察者物件,讓他們能夠自動更新自己 任何乙個模式都是離不開角色的,這裡也會有幾種角色 抽象主題角色 把所有對觀察者物件的引用儲存在乙個集合中,每個抽象主題角色都可以有任意數量的觀察...