工厂方法模式:通过对产品类的抽象使其创建业务主要负责用于创建多类产品。
上回讲到的简单工厂模式的第一种方案有所缺陷,缺陷是:如果增加了新类型的产品,必须修改两处以上的地方,即添加新的类以及修改工厂方法里添加新的返回类型。
//创建安全模式类,避免忘记使用new
var Factory = function(type,content){
if(this instanceof Factory){
var s = new this[type](content)
return s;
}else{
return new Factory(type,content)
}
}
Factory.prototype = {
Java:function(content){},
Javascript:function(content){},
UI:function(content){
this.content = (function(content){
var div = document.createElement('div');
div.style.border = '1px solid red'
document.getElementById('container').appendChild(div);
})(content)
},
php:function(content){},
python:function(content){}
}