设计模式学习笔记——抽象工厂模式

设计模式(创建型)------ 抽象工厂模式

在工厂模式中,我们为每一个类都设计了一个工厂,以此来获取该类的对象,但缺点就是一旦类多了,工厂就多了,这时候我们可以考虑这些类间是否有关联,举个例子:

  • 小米华为这两个品牌都有自己的手机、路由器等电子产品,如果按照之前的方法,我们需要为这些产品都设计一个工厂,那这样成本太高了,如果按照品牌划分,分为小米工厂和华为工厂,每个工厂都拥有制造手机、路由器的生产线,这样一来我们就只需要两个工厂类。

同时因为这两个工厂有共同点,所以我们可以进行抽象化,设计一个超级工厂,它拥有制造手机、路由器的生产线(方法),这样一来,当我们需要新增一个具有相同产品线的工厂时,只需要继承这个超级工厂即可。

但这种方法也有缺点,当我们的产品线需要新增产品时,超级工厂和每个品牌的工厂都需要进行修改,这也就违背了开闭原则。

相关推荐
qq_386322693 小时前
华为网路设备学习-32(BGP协议 七)路由反射器与联邦
网络·学习
萘柰奈3 小时前
Unity学习----【进阶】Addressables(二)--加载资源与打包及更新
学习·unity
liliangcsdn6 小时前
Leiden社区发现算法的学习和示例
学习·数据分析·知识图谱
程序员Xu6 小时前
【LeetCode热题100道笔记】二叉树的右视图
笔记·算法·leetcode
程序员Xu7 小时前
【LeetCode热题100道笔记】二叉搜索树中第 K 小的元素
笔记·算法·leetcode
DKPT7 小时前
JVM中如何调优新生代和老生代?
java·jvm·笔记·学习·spring
phltxy7 小时前
JVM——Java虚拟机学习
java·jvm·学习
烛阴10 小时前
【TS 设计模式完全指南】从“入门”到“劝退”,彻底搞懂单例模式
javascript·设计模式·typescript
我真的是大笨蛋10 小时前
K8S-基础架构
笔记·云原生·容器·kubernetes
m0_5713728210 小时前
嵌入式学习——ARM 体系架构1
arm开发·学习