觀察者模式與發布訂閱者模式的區別

2022-09-06 02:15:13 字數 1118 閱讀 3580

兩者區別簡述:

1.  發布訂閱模式是最常用的一種觀察者模式的實現,並且從解耦和重用角度來看,更優於典型的觀察者模式

2. 訂閱者有排程中心

觀察者模式:

發布訂閱模式:

**實現上的區別:

// 觀察任意陣列的push操作

let array =})}

}}var arr = [1, 2, 3, 4, 5];

array.watch(arr,

function

(value) );

arr.push(6, 7);

console.log(arr);

var arr1 = [8, 9];

array.watch(arr1,

function

(value) );

arr1.push(10, 11);

console.log(arr1);

//訂閱者與發布

class subscriber

//訂閱

subscribe(name, callback)

if (this.list[name] && this.list[name] instanceof

array)

else

}//發布

release(name, data)

else

); }

}}//

例項化線人

let my = new

subscriber();

my.subscribe('eventname', (data) =>);

my.release('eventname','doing something!');

觀察者模式 與 發布訂閱模式

兩個模式的實現結構 觀察者模式 觀察者 observer 直接訂閱 subscribe 主題 subject 而當主題被啟用的時候,會觸發 fire event 觀察者裡的事件。觀察者模式定義了物件間的一種一對多的依賴關係,當乙個物件的狀態發生改變時,所有依賴於它的物件都將得到通知,並自動更新。觀察...

觀察者模式(發布訂閱模式)

簡介 觀察者模式 又被稱為發布 訂閱 public subscribe 模式,屬於行為型模式的一種,它定義了一種一對多的依賴關係,讓多個觀察者物件同時監聽某乙個主題物件。這個主題物件再狀態變化時,會通知所有的觀察者物件,使他們能夠自動更新自己。塊 public 發布動態 button 觀察者 粉絲 ...

觀察者模式 訂閱發布模式

觀察者模式是一種物件間的一對多依賴關係,當乙個物件的狀態發生變化時,所有依賴他的物件都將得到通知。通常運用在物件之間的訊息通訊中。比如現在有一群學生,可以組成小組,可以尋求幫助 class students askforhelp subject 向大家尋求幫助 this.tasks.foreach ...