软件设计模式在JavaScript中的应用
2010-09-14 13:32:10 来源:WEB开发网接下来,定义Observer类和Subject类。其中,Observer类的代码如下所示:
//Observer类
function Observer(){}
object.extend(Observer.prototype, {
//实体Observer类需要覆盖Update方法
Update:function(){
return;
}
});
Subject类的代码如下:
//Subject类
function Subject(){}
Object.extend(Subject.prototype,{
//Observer对象的数组
observers:[],
//通知每一个Observer对象执行Update方法
notify:function(context){
for(var i=0; i<this.observers.length; i++)
this.observers[i].Update(context);
},
//添加一个新的Observer
addObserver:function(observer) {
if(!observer.Update)
throw new Error(“addObserver error!”);
this.observers.push(observer);
},
//删除已有的Observer
removeObserver:function(Observer) {
if(!observer.Update)
throw new Error(“removeObserver error!”);
this.observers.removeAt(this.observers.indexOf(observer));
},
});
到此为止,使用Observer模式所需要的类都已经实现。下面是使用这些类实现Observer模式的步骤:
·创建Subject对象实例;
·创建若干个Observer对象实例,分别覆盖它们的Update方法;
·将Observer对象实例订阅到Subject对象上;
·通过Subject对象发出通知,此时所有订阅了该Subject对象的Observer对象均会执行各自的Update方法;
·如果需要撤销某个Observer对象对Subject对象的订阅,可以调用removeObserver方法实现。
Tags:软件 设计模式 JavaScript
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接