通过对产品类的抽象使其创建爱你业务主要负责用于创建多类产品的实例
安全模式类
安全模式类式防止忽略new关键字时造成的错误
var Demo = function (){
if (!(this instanceof Demo)){
return new Demo()
}
}
Demo.prototype = {
show:function (){
console.log('成功获取')
}
}
var d = Demo();
d.show();
安全的工厂方法
// 安全模式创建类的工厂
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){
},
UI:function (content) {
this.content = content
(function (content){
var div = document.createElement('div');
div.innerHTML = content
//.....
})(content)
},
//....
}
var data = [
{type:'JavaScript',content:'js'},
{type:'JavaScript',content:'js'},
{type:'JavaScript',content:'js'}
]
for (let i = 0; i < data.length; i++) {
Factory(data[i].type, data[i].content)
}
记录
对于创建多类对象,之前的简单工厂模式就不大适用了。
通过工厂方法模式我们可以轻松创建多个类的实例对象,这样的工厂方法对象在创建对象的方法也避免了使用者与对象类之间的耦合,用户不必关心创建该对象的具体类