观察者模式: 又名通知者模式,对象A对已订阅的若干个对象(B, C, D)进行通知,(B, C, D)可以选择退订或再订阅;
例子(javascript): 老师D对已签到的学生进行通知报数
var D = {
students: [],
sign:function(student){
var i;
for(i in D.students){
if(D.students[i] == student) return;
}
D.students[D.students.length] = student;
},
unsign: function(student){
var i;
for(i in D.students){
if(D.students[i] == student){
D.students[i] = null;
return;
}
}
D.students[D.students.length] = student;
},
notify: function(){
var i, num = 1;
for(i in D.students){
D.students[i] && D.students[i].speak(num++);
}
}
};
var student = function(){};
student.prototype.speak = function(n){
alert(n);
};
var A = new student;
var B = new student;
var C = new student;
D.sign(A);
D.sign(B);
D.sign(C);
D.notify();

本文介绍了一种常用的设计模式——观察者模式,通过一个简单的JavaScript示例来解释如何实现该模式。观察者模式允许一个对象(主题)在状态发生变化时通知其多个依赖对象(观察者)。文章提供了具体的代码实现,展示如何让观察者注册、取消注册以及接收通知。
1862

被折叠的 条评论
为什么被折叠?



