跳转至

创建者模式和工厂模式的区别

Factory模式中:

  1. 有一个抽象的工厂。
  2. 实现一个具体的工厂---汽车工厂。
  3. 工厂生产汽车A,得到汽车产品A。
  4. 工厂生产汽车B,得到汽车产品B。

这样做,实现了购买者和生产线的隔离。强调的是结果。

Builder模式:

  1. 引擎工厂生产引擎产品,得到汽车部件A。
  2. 轮胎工厂生产轮子产品,得到汽车部件B。
  3. 底盘工厂生产车身产品,得到汽车部件C。
  4. 将这些部件放到一起,形成刚好能够组装成一辆汽车的整体。
  5. 将这个整体送到汽车组装工厂,得到一个汽车产品。

这样做,目的是为了实现复杂对象生产线和其部件的解耦。强调的是过程。

两者的区别在于:

Factory模式不考虑对象的组装过程,而直接生成一个我想要的对象。 Builder模式先一个个的创建对象的每一个部件,再统一组装成一个对象。 Factory模式所解决的问题是,工厂生产产品。 而Builder模式所解决的问题是工厂控制产品生成器组装各个部件的过程,然后从产品生成器中得到产品。