标签:
在项目开发中经常遇到在网页上显示一些相同的样式但是内容不同的需求,而且这个需求还是动态的,随着需求的变化内容也有可能在不断的变化,对此我们推荐:工厂模式:通过对产品类的抽象使其创建业务主要用于创建多类产品的实例。
var Java = function (content) {
//将内容备份到content中,以备日后使用
this.content = content;
//创建对象时,通过闭包直接执行,讲内容按照需求的模式插入到页面
(function () {
var div = document.createElement(‘div‘);
div.innerHTML = content;
div.style.color = ‘green‘;
document.getElementById(‘container‘).appendChild(div);
})(content);
}
var Php = function (content) {
//将内容备份到content中,以备日后使用
this.content = content;
//创建对象时,通过闭包直接执行,讲内容按照需求的模式插入到页面
(function () {
var div = document.createElement(‘div‘);
div.innerHTML = content;
div.style.color = ‘blue‘;
document.getElementById(‘container‘).appendChild(div);
})(content);
}
var jobFactory = function (type, content) {
switch (type){
case ‘java‘:
return new Java(content);
case ‘php‘:
return new Php(content);
}
}
//安全模式创建的工厂类
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) {
//将内容备份到content中,以备日后使用
this.content = content;
//创建对象时,通过闭包直接执行,讲内容按照需求的模式插入到页面
(function () {
var div = document.createElement(‘div‘);
div.innerHTML = content;
div.style.color = ‘green‘;
document.getElementById(‘container‘).appendChild(div);
})(content);
},
Php : function (content) {
//将内容备份到content中,以备日后使用
this.content = content;
//创建对象时,通过闭包直接执行,讲内容按照需求的模式插入到页面
(function () {
var div = document.createElement(‘div‘);
div.innerHTML = content;
div.style.color = ‘green‘;
document.getElementById(‘container‘).appendChild(div);
})(content);
}
}
标签:
原文地址:http://www.cnblogs.com/endy-blog/p/407366e5e1ad8073d31e0cf62a9fa128.html