"./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 完美的將觀察者和被觀察的物件分離開。舉個例子,使用者介面可以作為乙個觀察者,業務資料是被觀察者,使用者介面觀察業務資料的變化,發現資料變化後,就顯示在介面上。物件導向設計的乙個原則是 系統中的每個類將重點放在某乙個功能上,而不是其他方面。乙個物件只做一件事情,並且將他做...
觀察者模式
觀察者模式定義了一種一對多的依賴關係,讓多個觀察者物件同時監聽某乙個主題物件。這個主題物件在狀態上發生變化時,會通知所有觀察者物件,讓他們能夠自動更新自己 任何乙個模式都是離不開角色的,這裡也會有幾種角色 抽象主題角色 把所有對觀察者物件的引用儲存在乙個集合中,每個抽象主題角色都可以有任意數量的觀察...