又称生成器模式,分部构建一个复杂对象,并允许按步骤构造。将一个复杂对象的构建层与其表示层分离。例如:车的组成包含车身、轮胎等
- 建造者
- 指挥者
- 产品
解决问题:
- 将产品的组成分离成多个部分
优点:
- 使产品的构建流程和产品的表现分离
- 扩展方便
- 复用性强
缺点:
- 增加了复杂度
使用场景:
- 通过组装不同组件为产品时,可以使用
与其他设计模式区别:
- 工厂模式:对象的创建与实现分离
- 建造者模式:对象的创建与实现分离,对象分组创建
// 建造者,部件生产
class ProductBuilder {
constructor(param) {
this.param = param
}
/* 生产部件,part1 */
buildPart1() {
// ... Part1 生产过程
this.part1 = 'part1'
}
/* 生产部件,part2 */
buildPart2() {
// ... Part2 生产过程
this.part2 = 'part2'
}
}
/* 指挥者,负责最终产品的装配 */
class Director {
constructor(param) {
const _product = new ProductBuilder(param)
_product.buildPart1()
_product.buildPart2()
return _product
}
}
// 获得产品实例
const product = new Director('param')