說明:觀察者模式超級簡陋版,**很簡單
主要實現**如下:
//簡單的工具物件,實現了觀察者模式所需的基本要素
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...