介绍
※ 将 new 操作单独封装
※ 遇到 new 时,就要考虑是否应该使用工厂模式
实现代码(ES6)
class Product {
constructor(name){
this.name = name
}
init(){
console.log('init')
}
fn1(){
console.log('fn1')
}
fn2(){
console.log('fn2')
}
}
class Creator{
create(name){ //工厂类
return new Product(name)
}
}
let create = new Creator()
let p = create.create('啊P')
p.init() //init
p.fn1() // fn1
p.fn2() //fn2
设计原则
● 构造函数和创建者分离
● 符合开放封闭原则