创建者模式 -- 工厂模式

使得创建者与调用者分离

三种实现方式:

  • 简单工厂模式:

  是根据不同的参数返回不同的实例,只有一个工厂。如果增加新的产品,会修改原来的代码,所以不完全满足OCP原则。

  • 工厂方法模式:

  不同的产品有不同的工厂(有一个总的工厂的接口)

  • 抽象工厂模式:(拥有多个产品类型,有多个产品接口)

  用来生产不同产品族的全部产品。

简单工厂模式和工厂方法模式是针对于单个产品

抽象工厂模式是针对于产品族

简单工厂模式和工厂方法模式的对比:

结构复杂度: 简单工厂模式只有一个工厂,工厂方法模式工厂数据随着产品增加而增加
代码复杂度&管理上的难度: 工厂方法模式类多
客户端编程复杂度:工厂方法模式虽然在工厂类结构中引入了接口从而满足了OCP,但是在客户端编码中需要对工厂类进行实例化,而简单工厂模式的工厂类是一个静态类,在客户端无需实例化,这无疑是个吸引人的优点


简单工厂模式不完全满足OCP原则,工厂方法模式满足OCP原则,但是在一般情况下,使用简单工厂模式较多。 

原文地址:https://www.cnblogs.com/DDiamondd/p/10969026.html