JavaScript中的工厂模式

281 阅读1分钟

介绍

※ 将 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

设计原则

● 构造函数和创建者分离

● 符合开放封闭原则