设计模式之工厂模式vs建造者模式

工厂模式vs建造者模式

工厂模式vs建造者模式

举例:
人分为大人,小孩。大人可以抽烟喝酒,小孩子只会玩泥巴。

  • 从角色上看

    • 工厂模式

      • 工厂
      • 抽象产品类
      • 具体产品类
    • 建造者模式

      • 指挥者
      • 抽象builder
      • 具体builder
      • 产品
    • 对外部来讲

      • 使用工厂,外部需要知道有哪些产品
      • 使用建造者,外部不知道有什么产品,也不知道是谁来建造,全部由指挥者来决定生产什么东西。
  • 其他差异

    • 关注的颗粒度不同
      • 工厂模式关注的是产品的整体
      • 建造者可以的话,更关注的是产品实现的步骤,顺序组合等
  • 如何取舍

    • 如果是关注产品的实现的步骤,顺序组合等,建议使用建造者模式。反之建议使用工厂模式。