工厂模式:简单理解就是,你需要一个东西,可能是笔记本、电脑、可乐、薯片等
你只需要到对应的商店购买就可以了,你不需要知道它是怎么制作的。
转换到JavaScript里面来,就是对new操作进行封装。
class Cola {
constructor(brand, price) {
this.brand = brand
this.price = price
}
myName() {
console.log(`我的品牌是${this.brand}`)
}
myPrice() {
console.log(`我的价格是${this.price}`)
}
}
class Factory {
createCola(brand, price) {
return new Cola(brand, price)
}
}
const factory = new Factory() // 工厂
const cola = Factory.createCola('可口可乐', '3') // 告诉工厂我需要cola,工厂就会给你一个cola
cola.myName()
cola.myPrice()
这种设计思路可以让使用无需关系过程,只需要关注结果就可以了
而且易于扩展,只需要在工厂里添加新的方法就可以了
维护性起来也容易,当要更换或者修改的时候,只需要修改工厂的方法就可以了
不过会提升系统的复杂度以及理解难度