好久没写东西了,小小的懒,慢慢的学,早就想介绍一下工厂模式了,尽管经常用,但今天才算细节的理解一下,愿意我们一起学习一起努力!
// 全局工厂类
var ObjectFactory = function () {
var me = this;
// 对象类数组
me._objects = [];
// 定义对象
me.define = function (name, cfg) {
me._objects[name] = cfg;
}
// 创建对象
me.create = function (name, params) {
if (!me._objects[name]) {
return null;
}
// 如果是函数
if(me._objects[name] instanceof Function) {
return new me._objects[name](params);
}
// 如果是对象
return me._objects[name];
}
}
上面是工厂的创建,下面我们来创建对象
// 应用
// 创建对象工厂
var ObjBase = new ObjectFactory();
// 定义一个对象
ObjBase.define('start', {
time: '8:00',
startWork: function () {
console.log('start work at 8am')
}
})
// 创建一个start对象
var start = ObjBase.create('start');
console.log(start.time) //---8:00
// 定义一个对象参数是函数
ObjBase.define('end', function (params) {
var me = this;
me.time = params.time || '18:00';
me.endWork = params.endWork || function () {
console.log('end work!')
}
})
// 创建end对象
var end = ObjBase.create('end',{time:'19:00'})
console.log(end.time) // ---19:00
网友评论