设计模式探秘-8-建造者模式

建造者模式的学习与实践

建造者模式

建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

类图

  1. Product 产品 实现模版方法和基本方法
  2. Builder 抽象建造者 规范Product的组建,一般由子类实现。
  3. ConcreteBuilder 具体建造者 实现抽象类定义的所有方法,并且返回一个组建好的对象。
  4. Director 导演类 负责安排已有模块的顺序,然后告诉Builder开始建造。

优点

  1. 封装性 客户端不必知道产品内部组成的细节
  2. 建造者独立,容易扩展
  3. 便于控制细节风险

缺点

使用场景

  1. 相同的方法,不同的执行顺序,产生不同的事件结果时,采用建造者模式
  2. 多个部件或零件都可以装配到一个对象中,但产生的运行结果又不相同时,则可以使用该模式
  3. 产品类非常复杂,或者产品类中的调用顺序不同产生了不同的效能

注意事项

建造者模式关注的是零件类型和装配工艺(顺序),这是建造者模式和工厂方法模式最大的区别,虽然同为建造类模式,但注重点不同。工厂模式重点是创建,创建对象时其主要职责,组装顺序则不是其所关心的。AbstractFaxtory模式强调的是为创建多个相互依赖的对象提供一个同一的接口。

扩展

使用建造者模式时可以考虑模版方法模式,通过组合多种模式达成目的。

参考资料

  1. 设计模式之禅
  2. GoF+23种设计模式解析