创建者模式和工厂模式的区别¶
Factory模式中:¶
- 有一个抽象的工厂。
- 实现一个具体的工厂---汽车工厂。
- 工厂生产汽车A,得到汽车产品A。
- 工厂生产汽车B,得到汽车产品B。
这样做,实现了购买者和生产线的隔离。强调的是结果。
Builder模式:¶
- 引擎工厂生产引擎产品,得到汽车部件A。
- 轮胎工厂生产轮子产品,得到汽车部件B。
- 底盘工厂生产车身产品,得到汽车部件C。
- 将这些部件放到一起,形成刚好能够组装成一辆汽车的整体。
- 将这个整体送到汽车组装工厂,得到一个汽车产品。
这样做,目的是为了实现复杂对象生产线和其部件的解耦。强调的是过程。
两者的区别在于:¶
Factory模式不考虑对象的组装过程,而直接生成一个我想要的对象。 Builder模式先一个个的创建对象的每一个部件,再统一组装成一个对象。 Factory模式所解决的问题是,工厂生产产品。 而Builder模式所解决的问题是工厂控制产品生成器组装各个部件的过程,然后从产品生成器中得到产品。