创建者模式 -- 工厂模式

本文深入探讨了工厂模式的三种实现方式:简单工厂模式、工厂方法模式和抽象工厂模式。比较了它们之间的结构复杂度、代码管理难度及客户端编程复杂度,强调了简单工厂模式和工厂方法模式在单一产品创建中的应用,以及抽象工厂模式在产品族创建中的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使得创建者与调用者分离

三种实现方式:

  • 简单工厂模式:

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

  • 工厂方法模式:

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

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

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

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

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

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

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


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

转载于:https://www.cnblogs.com/DDiamondd/p/10969026.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值