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

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

 2010-09-14 13:32:10 来源:WEB开发网   
核心提示: 上面的第三种创建方式可谓挖空心思,穷JavaScript之能事,软件设计模式在JavaScript中的应用(4),但终于获取了令人满意的效果,3.Factory Method模式(1)概念根据GoF的定义,而此职责并不修改原有的行为,而是在原有行为基础上添加新的功能,Factory Met

上面的第三种创建方式可谓挖空心思,穷JavaScript之能事,但终于获取了令人满意的效果。

3.Factory Method模式

(1)概念

根据GoF的定义,Factory Method模式的目的是为了定义一个创建对象的接口,由子类来决定实例化哪一个类。更准确地说应该是,Factory Method模式是将创建对象实例的责任转移到工厂类中,并利用抽象的原理,将实例化行为延迟到具体工厂类中。

(2)举例

在某些情况下,我们的确无法确定将要创建的对象是哪个类的实例,这样的一个典型示例就是在Ajax应用程序中需要创建XMLHttpRequest(XHR)对象时,因为大家都知道在不同的浏览器中XHR对象的实现类是不同的。

通过引入Factory Method模式,我们即可以轻松使用JavaScript实现创建通用的XHR对象,相应的代码实现如下所示。

function XMLHttpFactory(){}
XMLHttpFactorv.CreateXMLHttp=function() {
if(typeof XMLHttpRequest!=”undefined”){
//支持XMLHttpRequest对象的浏览器:例如Firefox等
return new XMLHttpRequest();
}else if(typeof window.ActiveXObject!=”undefined”){
//支持ActiveX对象的浏览器,即IE
return new ActiveXObject(“MSXML2.XMLHttp”);
}
}

然后,通过以下代码便可以相当容易地判断出浏览器的类型并进而创建XHR对象。

var xmlhttp=XMLHttpFactory.createXMLHttp();

此后,基于以上创建的XHR对象就可以进行Ajax风格的服务器端调用了。

4.Decorator模式

(1)概念

Decorator模式是结构型模式的一种,它充分利用了继承与聚合的优势,其主要目的是为了给一个对象动态地添加以新的职责,而此职责并不修改原有的行为,而是在原有行为基础上添加新的功能,就好比装饰工人为一座新居的墙上涂抹上色彩缤纷的颜料一般。

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

Tags:软件 设计模式 JavaScript

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