Javascript乱弹设计模式系列(2) - 抽象工厂以及工厂方法模式(Factory)
2010-09-14 13:35:26 来源:WEB开发网这里包括4种颜色的子类,全部都继承于抽象类LMRBlock,子类中getData的方法做为抽象方法的具体实现;
7. 现在该创建个工厂来实现它们了,添加BlockFactory.js文件,首先创建布局抽象工厂类:
functionBlockFactory(){
}
BlockFactory.prototype={
getBlock:function(block){
var_block;
_block=this.createBlock(block);
//添加其他逻辑
//
return_block;
},
createBlock:function(block){
returnnewError("抽象方法,不能调用");
},
getBlockText:function(){
returnnewError("抽象方法,不能调用");
}
};
这里createBlock和getBlockText同样是做为抽象方法;
现在要创建三个继承于这个布局抽象工厂类,LMRBlockFactory,LRMBlockFactory,MLRBlockFactory,这里同样以LMRBlockFactory为例:
functionLMRBlockFactory(){
}
inheritClass(LMRBlockFactory,BlockFactory);
LMRBlockFactory.prototype.createBlock=function(block){
var_block;
switch(block)
{
case"blue":_block=newBlueLMRBlock();break;
case"red":_block=newRedLMRBlock();break;
case"green":_block=newGreenLMRBlock();break;
case"violet":_block=newVioletLMRBlock();break;
default:_block=newBlueLMRBlock();break;
}
return_block;
};
LMRBlockFactory.prototype.getBlockText=function(){
return"LMR";
};
更多精彩
赞助商链接