参考以下资料:
深入理解JavaScript系列(28):设计模式之工厂模式
前端的工厂模式主要用在所实例化的类型在编译期并不能确定, 而是在执行期决定的情况(简单说是写代码时候A B C写出来 用运行是用户来决定用那种情况)
上代码:
var productManager = {};
productManager.createProductA = function () {
console.log('ProductA');
}
productManager.createProductB = function () {
console.log('ProductB');
}
productManager.factory = function (typeType) {
//[]就很明显了,运行期决定
return new productManager[typeType];
}
//实际中更可能是用户click来决定createProduct-A/B/C
productManager.factory("createProductA");
类似的,jQuery里面的ajax的api,如get/post等都属于工厂模式
工厂模式主要好处就是可以消除对象间的耦合,通过使用工程方法而不是new关键字。将所有实例化的代码集中在一个位置防止代码重复。