软件设计模式在JavaScript中的应用
2010-09-14 13:32:10 来源:WEB开发网上面的第三种创建方式可谓挖空心思,穷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模式是结构型模式的一种,它充分利用了继承与聚合的优势,其主要目的是为了给一个对象动态地添加以新的职责,而此职责并不修改原有的行为,而是在原有行为基础上添加新的功能,就好比装饰工人为一座新居的墙上涂抹上色彩缤纷的颜料一般。
Tags:软件 设计模式 JavaScript
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接