设计模式之抽象工厂模式

概述

工厂方法模式把生成产品类的时间延迟,通过添加新的工厂类来生成需要添加的新产品类,符合“开放-封闭”原则。

但是工厂方法模式也有其缺点,当产品类过于多时,则需要添加过多工厂类,造成代码冗余。

而抽象工厂模式则可以解决这个问题。那么,抽象工厂模式相对于工厂方法模式做了哪些改进呢?我们知道,产品与产品之间并不一定是完全独立的,而是可以归类。例如,产品A是小米手机,则产品A的工厂类是FactoryA小米手机事业部,按照工厂方法模式,若添加一个产品B小米充电宝,则需要添加一个FactoryB小米充电宝事业部。然而,不管是FactoryA小米手机事业部还是FactoryB小米充电宝事业部都隶属于小米集团,我们完全可以把FactoryA和FactoryB合并(姑且称作FactoryAB吧),则产品A和产品B都由FactoryAB来生产。

所以抽象工厂模式与工厂方法模式的区别在于,抽象工厂模式的每个工厂完全可以生产多个产品,而工厂方法模式每个工厂只能够生产一个产品。其实,工厂方法模式是一种特殊的抽象工厂模式。

UML图

在这里插入图片描述

角色

抽象产品类A : Product
抽象产品类A对应

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页
实付 9.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值