zzbo

唏嘘的感慨一年年。。。

[设计模式]工厂模式

工厂模式也是Javascript比较常用的模式。
他主要是提供一个创建一系列相关或相互依赖对象的接口,而不一定要指定它们具体的类。
工厂模式的精髓在于可以选择类或函数等,通常是用来动态创建对象。
是不是看起来有点难懂?还是看代码吧。

//这是一个工厂模式例子(隐式选择)
function createXML(){
if(typeof XMLHttpRequest != "undefined"){
return new XMLHttpRequest();
}else if(typeof window.ActiveXObject != "undefined"){
return new ActiveXObject("MSXML2.XMLHttp");
}
}

var xmlHttp = createXML();

或许你之前也会这样创建过XHR对象,或许你之前不懂什么工厂模式。
原来就这样不知不觉地运用了工厂模式。

或者也可以作为类的方法:

var MainClass = function(){}; //主构造器
MainClass.prototype = {
FactoryMode:function(){}; //子类选择器
}

或者可以选择类:

var selectClass = function(key){
if(key == 1){
return Class1;
}else if(key == 15){
return Class2;
}else{
return Class3;
}
}

或者选择配置:

function User(type){
if(type == "Admin"){
this.config = {};
}else if(type == "SuperAdmin"){
this.config = {};
}else{
this.config = {};
}
}

User.prototype = {
this.fontColor = this.config.fontColor;
this.fontSize = this.config.fontSize;
...
}





posted on 2012-02-13 17:07  zzbo  阅读(253)  评论(0编辑  收藏  举报

导航