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

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

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

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

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

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

相关推荐
tianbin9117 小时前
Claude Code 用户的中转站实战笔记:接入、压测与避坑
笔记
Answer1st8 小时前
【FPGA学习】在线调试方法(四)
笔记
云析赢指标公式网48 小时前
通达信ATAN均线角度公式源码笔记:四周期角度计算与DRAWBAND色带实现
笔记·算法
01二进制代码漫游日记8 小时前
[C++]之内存管理(一)
jvm·c++·学习
蒸蒸yyyyzwd8 小时前
学习笔记day92
笔记·八股
椒颜皮皮虾྅8 小时前
让 C# 读懂整张图:DeploySharp 驱动 PaddleOCR v4/v5/v6,打通 OCR 全流程
开发语言·人工智能·深度学习·学习·c#·ocr·cuda
Java后端的Ai之路8 小时前
01、Java并发编程:学习攻略如何才能学好并发编程?
java·开发语言·学习
kk_net88998 小时前
FSNotes:macOS 和 iOS 上的开源笔记管理器
笔记·其他·macos·ios
corey939 小时前
Linux 学习 - 第十四周作业
linux·运维·学习
一木 之林20 小时前
Dify学习笔记 03 · RAG检索增强生成:三代范式、评估与落地(第40-45、55-56集)
笔记·小程序·交互·dify