工厂模式

简单工厂模式

  简单工厂模式也叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。

    

1、优点。

  通过使用工厂类,外界可以从直接创建具体产品对象的尴尬局面摆脱出来,仅仅需要负责“消费”对象就可以了。而不必管这些对象究竟如何创建及如何组织的.明确了各自的职责和权利。

2、缺点。

  由于工厂类集中了所有实例的创建逻辑,违反了高内聚责任分配原则,将全部创建逻辑集中到了一个工厂类中;它所能创建的类只能是事先考虑到的,如果需要添加新的类,则就需要改变工厂类了。

3、点评

  在实际应用中,没有人会使用这种经典的简单工厂模式。通常会将 Type 成为 Product 的一个属性,工厂根据 Type,生成对应的 Product,从而避免工厂耦合Product。

工厂方法模式

   将一个工厂,拆分成了多个工厂。每个工厂分别负责不同的产品。

  

  工厂方法模式保持了简单工厂模式的优点,而且克服了它的缺点。但工厂方法模式的缺点是每增加一个产品类,就需要增加一个对应的工厂类,增加了额外的开发量。

1、点评

  本模式将Simple Factory中的 Type 拆分了成各个SubFactory,每个 SubFactory管理一个Type。这样做解保持了开闭原则。但是使用方Client需要根据不同的Type,选择不同的Factory。

抽象工厂模式

   定义:为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。

    

  

     1,首先从简单工厂进化到工厂方法,是因为工厂方法弥补了简单工厂对修改开放的弊端,即简单工厂违背了开闭原则。

     2,从工厂方法进化到抽象工厂,是因为抽象工厂弥补了工厂方法只能创造一个系列的产品的弊端。

  

原文地址:https://www.cnblogs.com/tekkaman/p/10472914.html