經驗總結 簡陋無比的觀察者模式實現

2021-09-23 21:19:08 字數 1089 閱讀 5667

說明:觀察者模式超級簡陋版,**很簡單

主要實現**如下:

//簡單的工具物件,實現了觀察者模式所需的基本要素

var publisher = ,

//訂閱事件,type:事件型別,handler:事件處理方法

subscribe: function(type, handler)

this.subscribers[type].push(handler);

},//停止訂閱事件,type:事件型別,[handler]:事件處理方法(如不傳,則將型別為type的事件訂閱佇列清空)

unsubscribe: function(type, handler)

//仁慈的老師

var teacher = {};

extend(teacher, publisher);

//聽話的學生

var student = ,

takeexam: function(param)

};

簡單的測試用例,非詳細:

teacher.subscribe('homework', student.dohomework);

teacher.subscribe('exam', student.takeexam);

teacher.publish('homework'); //homework, i wanna die

teacher.publish('exam', ); //just 2 weeks before final exams ! wtf

teacher.unsubscribe('homework', student.dohomework);

teacher.publish('homework');

teacher.publish('exam', ); //just 2 weeks before final exams ! wtf

觀察者模式的簡陋實現,**很簡單,思路也不複雜,根據需要稍加修改應該就可以用到實際專案中去,對於專案模組的通訊、解耦都有很大作用...省略n字...

觀察者模式的總結

什麼是觀察者模式呢?觀察者模式最常用的地方是gui系統 訂閱 發布系統。他在開發中使用率還是非常高的,因為這個模式最重要的乙個作用就是解耦,將觀察者和被觀察者解耦,使得它們之間依賴性更小。還是上 吧 public class coder implements observer override pu...

觀察者模式的總結

觀察者模式用於實現對物件進行觀察 一旦主體物件狀態發生改變,與之關聯的觀察者物件會收到通知,並進行相應操作。舉個例子說明 假設乙個這樣的情景,當公司有乙個新員工入職了,入職的當天,hr需要為他辦理入職手續,網管需要給他配好電腦和辦公用品,部門主管需要帶他熟悉部門。傳統的程式設計方式,就是在員工入職這...

觀察者模式簡單總結

觀察者模式就是兩個類的使用 public inte ce observer public class observable就像我們平時寫監聽一樣,不過這次是把listener加入集合中使用。public class aa public void notifyobservers public inte...