WEB开发网
开发学院网页设计JavaScript 软件设计模式在JavaScript中的应用 阅读

软件设计模式在JavaScript中的应用

 2010-09-14 13:32:10 来源:WEB开发网   
核心提示: (2)举例假设有一个作为工具类使用的对象,它不包含任何业务逻辑,软件设计模式在JavaScript中的应用(2),也不包含任何需要改变的数据,使用这样的对象时不需要每次都进行实例化,通过以下语句实例化Singleton类仍然是成立的:var instA =new Singleton ();

(2)举例

假设有一个作为工具类使用的对象,它不包含任何业务逻辑,也不包含任何需要改变的数据。使用这样的对象时不需要每次都进行实例化,只需要存在一个全局的对象供调用即可。

根据刚才的分析,我们就可以在JavaScript中通过如列表1所示的方式实现Singleton模式。模式可以保证一个类仅有一个实例,并且提供一个访问它的全局访问点。

列表1:在JavaScript中创建Singleton模式类

function Singleton(){
this.property1=”hello”;
this.methodl=function(x,y){
return x+y;
}
//定义一个静态属性
Singleton._instance_=null;
Singleton.getInstance=function(){
if(this._instance_==null){
//如果Singleton实例不存在,则进行实例化
this._instance_=new Singleton();
}
//返到Singleton的对象实例
return this._instance_;
};

上面的getInstance方法首先判断静态属性Singleton._instance_是否为null;如果为null,则新建一个Singleton类的对象,保存在Singleton._instance_,最后返回Singleton._instance_属性。

至于Singleton类的使用方法则很简单:

var instA =Singleton.getInstance(); //返回Singleton类的唯一实例

但遗憾的是,以上的代码不能禁止用户直接实例化Singleton类。例如,通过以下语句实例化Singleton类仍然是成立的:

var instA =new Singleton ();

而随后你调用如下语句也是成立的:

alert(typeof(instA));

alert(instA.property1);

因此,我们需要进一步修改Singleton类的构造函数,使得Singleton类只能在Singleton.getInstance方法中进行实例化。

上一页  1 2 3 4 5 6 7  下一页

Tags:软件 设计模式 JavaScript

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接