工厂模式vs建造者模式
工厂模式vs建造者模式
举例:
人分为大人,小孩。大人可以抽烟喝酒,小孩子只会玩泥巴。
从角色上看
工厂模式
- 工厂
- 抽象产品类
- 具体产品类
建造者模式
- 指挥者
- 抽象builder
- 具体builder
- 产品
对外部来讲
- 使用工厂,外部需要知道有哪些产品
- 使用建造者,外部不知道有什么产品,也不知道是谁来建造,全部由指挥者来决定生产什么东西。
其他差异
- 关注的颗粒度不同
- 工厂模式关注的是产品的整体
- 建造者可以的话,更关注的是产品实现的步骤,顺序组合等
- 关注的颗粒度不同
如何取舍
- 如果是关注产品的实现的步骤,顺序组合等,建议使用建造者模式。反之建议使用工厂模式。