6. 一分钟读懂“抽象工厂模式”

6.1 模式介绍

书接上文,工厂方法模式只能搞定单一产品族,遇到需要生产多个产品族时就歇菜了。于是,在需求的"花式鞭策"下,程序员们再次绷紧脑细胞,创造出了更强大的抽象工厂模式,让工厂一次性打包多个产品族,效率拉满!

6.2 实现要素

抽象工厂模式关注的是多个产品族的创建,其实现3要素包括:n个产品接口、m个产品实现类(m>=n)、1个工厂接口,n个创建产品族的具体工厂实现类。

6.3 场景案例

抽象工厂模式就像电脑品牌的配件供应链,专门负责生产统一的产品组合。

  • 产品接口 :CPU 和 GPU 是配件的通用规范,比如 CPU.process() 负责计算,GPU.render() 负责图形渲染。

  • 产品实现类 :不同品牌提供具体实现,比如 IntelCPU 和 IntelGPU 注重高性能,AMDCpu 和 AMDGpu 强调性价比。

  • 工厂接口 :ComputerPartsFactory 规定每个品牌都必须实现 createCPU() 和 createGPU(),确保接口一致。

  • 具体工厂 :IntelFactory 专门生产 Intel 系列配件,AMDFactory 打造 AMD 系列配件,保证全套兼容性。

客户端就像在选择整套电脑配件,调用 createCPU() 和 createGPU() 等方法来从工厂中获得一整套相关的产品。只需要挑选品牌(Intel 或 AMD),工厂帮你搭配好,免去兼容性烦恼!

相关推荐
缓慢更新2 小时前
审批的加签与会签:多人意见怎么合
android·java·数据库·低代码·rxjava
yuniko-n3 小时前
【JUC】volatile 非原子性深入解析
java
sun_weitao4 小时前
极简版 MCP 工具实现方案
java·linux·服务器
金銀銅鐵5 小时前
[Java] 展示增删元素时 LinkedList 的内部变化
java·后端·ai编程
布吉岛的石头5 小时前
Java 程序员第 50 阶段3:数据工程:预训练语料清洗与去重
java·开发语言·人工智能·深度学习·transformer
大文说跨境6 小时前
防关联浏览器的指纹覆盖到什么程度:六类参数的实测与自检方法
java·指纹浏览器·tiktok运营
Carol06306 小时前
上肢及肩肘关节
java·服务器·数据库
yliucherish6 小时前
Log4Shell 复现实录:我读 OpenJDK 源码,发现两道防线的默认值竟然相反
java
维拉德6 小时前
Java新人第一次接打标需求:从抓包找接口到客户端展示
java
luobobo8966 小时前
支付回调验签连续失败三天,最后发现是网关的时间戳单位问题
java