跳到主要内容

3.4 工厂方法模式

工厂方法模式(Factory Method),通过对产品类的抽象使其创建业务,主要负责用于创建多类产品的实例。

工厂方法模式
// 安全模式创建的工厂类
var Factory = function (type, content) {
// 实例化类是忘记添加new时
if (this instanceof Factory) {
var s = new this[type](content)
return s
} else {
return new Factory(type, content)
}
}
// 工厂原型中设置创建所有类型数据对象的基类
Factory.prototype = {
Java: function (content) {
//
console.log('Java', this.content)
},
JavaScript: function (content) {
//
this.content = content
;(function (content) {
var div = document.createElement('div')
div.innerHTML = content
div.style.border = '1px solid red'
document.getElementById('container').appendChild(div)
})(content)
},
UI: function (content) {
this.content = content
;(function (content) {
var div = document.createElement('div')
div.innerHTML = content
div.style.border = '1px solid red'
document.getElementById('container').appendChild(div)
})(content)
},
php: function (content) {
//
},
}

var data = [
{ type: 'JavaScript', content: 'JavaScript 哪家强' },
{ type: 'Java', content: 'Java 哪家强' },
{ type: 'php', content: 'php 哪家强' },
{ type: 'UI', content: 'UI 哪家强' },
{ type: 'UI', content: 'UI 哪家强' },
{ type: 'JavaScript', content: 'JavaScript 哪家强' },
{ type: 'JavaScript', content: 'JavaScript 哪家强' },
]

for (var i = 6; i >= 0; i--) {
Factory(data[i].type, data[i].content)
}