创建者模式 -- 工厂模式

こ雲淡風輕ζ 提交于 2020-02-17 22:34:11

使得创建者与调用者分离

三种实现方式:

  • 简单工厂模式:

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

  • 工厂方法模式:

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

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

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

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

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

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

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


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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!