项目好忙,好久没有上过这里了,今天过来一看,居然完全没有人气,哈
...
(看来我得努力了)最近看了
Nicholas C. Zakas
的一篇文章,觉得现在既然在做
JavaScript
,不妨模仿
Mr. Nicholas
那样,用
Javascript
实现一些设计模式。迟点也许也把
Javascript
实现
Object
的各种特性(如:继承、多态等)也放上来。
1、
Factory
Factory
是我们最常用的模式之一。它主要为我们提供一个获取类实例的一个接口,把声明类的过程封装在了
Factory
中。举一个
Javascript
最常见的例子:
if (typeof XMLHttpRequest != "undefined") {
return new XMLHttpRequest();
} else if (typeof window.ActiveXObject != "undefined") {
return new ActiveXObject("MSXML2.XMLHttp");
}
这个代码主要是获得一个XMLHttp的实例,在代码中,很多时候都会用到。如果每次都写一个,会变得很麻烦,采用Factory模式的方法。代码如下:
function XMLHttpFactory() {
}
XMLHttpFactory.createXMLHttp = function () {
if (typeof XMLHttpRequest != "undefined") {
return new XMLHttpRequest();
} else if (typeof window.ActiveXObject != "undefined") {
return new ActiveXObject("MSXML2.XMLHttp");
}
}
在使用时可以直接调用而免去了很多冗余的代码,而且代码也非常直观。
var oXMLHttp = XMLHttpFactory.createXMLHttp();
2
、
Singleton
Singleton(
单态
)
的作用是保持在界面中保持只有一个实例供调用。这样可以保持系统对某一个实例使用进行控制。
function MyClass() {
}
MyClass.instance = null; //define the static property
MyClass.getInstance = function () {
if (this.instance == null) {
//
建立自己的实例,并保存
this.instance = new MyClass();
}
return this.instance;
}
在希望获得改实例的引用时,执行以下代码:
var oMyObject = MyClass.getInstance();
(未完待续
…..^_^
)