Skip to content

Latest commit

 

History

History
59 lines (50 loc) · 1.4 KB

04建造者模式.md

File metadata and controls

59 lines (50 loc) · 1.4 KB

建造者模式

又称生成器模式,分部构建一个复杂对象,并允许按步骤构造。将一个复杂对象的构建层与其表示层分离。例如:车的组成包含车身、轮胎等

  • 建造者
  • 指挥者
  • 产品

解决问题:

  • 将产品的组成分离成多个部分

优点:

  • 使产品的构建流程和产品的表现分离
  • 扩展方便
  • 复用性强

缺点:

  • 增加了复杂度

使用场景:

  • 通过组装不同组件为产品时,可以使用

与其他设计模式区别:

  • 工厂模式:对象的创建与实现分离
  • 建造者模式:对象的创建与实现分离,对象分组创建

实现代码

// 建造者,部件生产
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')

参考

JavaScript 设计模式精讲 - 第二章 10建造者模式