news 2026/7/7 1:46:43

第4篇:抽象工厂模式——产品族一键创建

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
第4篇:抽象工厂模式——产品族一键创建

第4篇:抽象工厂模式——产品族一键创建

摘要:当需要创建一系列相互关联的产品(产品族)时,抽象工厂模式能保证风格统一、一键切换。本文详解其实现、优缺点,并指出其适用场景。

本文是《Java 23 种设计模式:从踩坑到精通》工厂模式长文的扩充短文第4篇,帮助你碎片化掌握核心知识点。


你有没有写过这样的代码?

// 抽象工厂publicinterfaceGUIFactory{ButtoncreateButton();TextFieldcreateTextField();}// 具体工厂:Windows风格publicclassWinFactoryimplementsGUIFactory{@OverridepublicButtoncreateButton(){returnnewWinButton();}@OverridepublicTextFieldcreateTextField(){returnnewWinTextField();}}// 具体工厂:Mac风格publicclassMacFactoryimplementsGUIFactory{@OverridepublicButtoncreateButton(){returnnewMacButton();}@OverridepublicTextFieldcreateTextField(){returnnewMacTextField();}}

工厂方法解决的是单一产品的创建问题。但现实中,我们常需要创建一系列相互关联的产品——比如跨平台UI组件,按钮和文本框必须风格统一(全是Windows风格或全是Mac风格)。

抽象工厂模式正是为此而生:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。

客户端只需切换工厂实例,就能整体换肤:

GUIFactoryfactory=newWinFactory();// 切换这里Buttonbutton=factory.createButton();// 一定是Win风格TextFieldtextField=factory.createTextField();// 一定是Win风格

你的场景该不该用抽象工厂?
判断标准是 → 用抽象工厂否 → 用其他方式
产品成族出现,需要保证风格/协议一致
需要整体切换产品族(如换UI主题)
产品种类少且不成族简单工厂或工厂方法
产品等级结构可能频繁新增考虑工厂方法

一句话总结:产品成族出现、需要整体切换 → 用抽象工厂,保证成套一致。


📖完整长文入口:本文是工厂模式扩充系列的第4篇。如果你想一次性阅读完整内容(含UML、三种工厂对比、框架源码、面试追问等),请查看原长文:

👉 《Java 23 种设计模式:从踩坑到精通 | 工厂模式》

🔗 系列导航:

  • 上一篇:第3篇:工厂方法模式——把变化隔离到子类
  • 下一篇:第5篇:工厂方法 vs 抽象工厂——别再傻傻分不清
  • 返回: 《工厂模式·扩充系列》目录
  • 返回:《Java 23种设计模式:从踩坑到精通》总目录
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/7 1:46:03

138、转置卷积替换 nn.Upsample 的实验:可学习上采样 vs 固定插值的精度对比

138、转置卷积替换 nn.Upsample 的实验:可学习上采样 vs 固定插值的精度对比 一个让我熬夜三天的bug 去年做工业缺陷检测项目,模型在边缘设备上部署时发现一个诡异现象:训练时mAP@0.5能到0.92,但转成TensorRT后直接掉到0.78。排查了两天,最后定位到是nn.Upsample的biline…

作者头像 李华
网站建设 2026/7/7 1:36:39

.NET 8 与 .NET 9 即将停止支持,微软建议升级至 .NET 10

微软将于 2026 年 11 月 10 日终止对 .NET 8 和 .NET 9 平台的支持,并建议现有用户尽快升级至 .NET 10。自该日期起,微软将不再为 .NET 8 和 .NET 9 提供服务更新、安全修复或技术支持。微软高级项目经理 Rahul Bhandari 于 6 月 29 日在博客文章中表示&…

作者头像 李华
网站建设 2026/7/7 1:35:46

智能车极速越野组:BLDC六步换相 vs FOC 电机控制方案3大性能对比

智能车极速越野组:BLDC六步换相与FOC电机控制方案的深度性能对比在智能车竞赛的极速越野组别中,电机控制方案的选择直接决定了车辆的动力性能和赛道表现。面对复杂的室外地形和高速行驶需求,工程师们常常在BLDC六步换相方波控制与FOC&#xf…

作者头像 李华
网站建设 2026/7/7 1:30:50

I2S 音频与数字音频接口详解

做第一个物联网项目时,我给温湿度传感器加了一块屏幕、一个Wi-Fi,设备能测能看能联网,但我总觉得少了点什么。直到朋友来参观,看了一眼说:“你这东西怎么连个响都没有?” 那一刻我意识到——声音是人类最自…

作者头像 李华