牙牙窝

BlogJava 联系 聚合 管理
  8 Posts :: 21 Stories :: 10 Comments :: 0 Trackbacks

        项目好忙,好久没有上过这里了,今天过来一看,居然完全没有人气,哈 ... (看来我得努力了)最近看了 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();

 

(未完待续 …..^_^

 

 

posted on 2006-04-24 20:43 大牙 阅读(650) 评论(0)  编辑  收藏 所属分类: JavaScript探索

只有注册用户登录后才能发表评论。


网站导航: