设计模式之工厂模式的简单理解

  • 简单工厂模式

  只有一个工厂生产所有产品,需要生产什么产品,只需要告诉工厂产品的名称即可。

    缺点:1、当需要生产新的产品时,需要工厂增加新的产品线(修改工厂类),违反“闭开原则”,

               2、所有产品都交给这一个工厂生产,当产品种类很多时,会使工厂很大(工厂类显的臃肿),并且容易出现单点故障,即:如果工厂出现问题,将会导致整个工厂停工(系统故障)

  • 工厂方法模式(工厂模式)

为了改善简单工厂模式的缺点,衍生出工厂方法模式。

成立一个工厂总部(抽象类),只接业务不进行生成,下面开n个子工厂(子类)进行生产(负责目标类的创建),且每个子工厂只会生产一种产品,总部工厂不知道各子工厂个能生产什么产品,当客户需要产品时,找到工厂总部,告诉工厂总部工作人员,哪个子工厂能生产这个产品,总部接到业务需求后,分配给相应子工厂进行生产。这样当需要增加新的产品种类时,只需要开设新的子工厂即可,不需要总工厂变动(无需修改总工厂类)。

   缺点:1、每增加一个新的产品,都要增加一个工厂,占用土地(增加资源开销)

2、客户需要知道哪个工厂能生产哪个产品。

  • 抽象工厂模式

为了改善工程模式的缺点,衍生出抽象工厂模式

抽象工厂是有n个工厂,每个工厂都能生成相同用途的产品,且有多个产品线(可以生产多个商品),但是生成的产品外观,构造等不同,根据工厂划分为不同的品牌,当客户需要产品时,先确定需要什么牌子的什么产品,只需要知道找对应品牌的生产工厂进行加工即可。

缺点:当需要在每个工厂中增加新的产品时,会比较麻烦,需要对每个工厂增加产品线(修改每个工厂类),但是对于增加一个新的品牌比较容易(新增工厂即可)

以上为个人理解,如有理解错误,欢迎纠正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值