【JS常见设计模式】工厂模式
工厂模式
定义一个用于创建对象的工厂类,所有对象由工厂类创建,但具体的实例化由子类控制
// 产品类
function Product(name) {
this.name = name
}
// 产品原型
Product.prototype = {
constructor: Product,
init: function init() {
console.log('init')
},
getName: function getName() {
return this.name
}
}
// 工厂类
function Factory() {
this.name = '工厂'
}
// 工厂类原型上的创建方法
// + 每次创建返回一个产品实例
Factory.prototype.create = function create(name) {
return new Product(name)
}
let factory = new Factory(); // 工厂实例
let product1 = factory.create('product1'); // 产品实例
product1.init(); // init
console.log(product1.getName()); // product1
let product2 = factory.create('product2');
product2.init(); // init
console.log(product2.getName()); // product2