当前位置: 首页 > news >正文

第3篇:工厂方法模式——把变化隔离到子类

第3篇:工厂方法模式——把变化隔离到子类

摘要:简单工厂违反开闭原则怎么办?工厂方法模式通过将创建逻辑下放到子类,实现了零修改扩展。本文详解其实现、优缺点,并指出其代价——类数量膨胀。

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


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

// 抽象工厂publicinterfaceSenderFactory{SendercreateSender();}// 具体工厂publicclassSmsSenderFactoryimplementsSenderFactory{@OverridepublicSendercreateSender(){returnnewSmsSender();}}publicclassEmailSenderFactoryimplementsSenderFactory{@OverridepublicSendercreateSender(){returnnewEmailSender();}}

简单工厂违反开闭原则,怎么办?工厂方法模式给出了优雅的答案:不再用一个工厂类扛所有创建逻辑,而是把“创建”抽象成接口,让每个具体产品都有一个对应的具体工厂。

客户端调用:

SenderFactoryfactory=newSmsSenderFactory();Sendersender=factory.createSender();sender.send("你好,工厂方法!");

新增产品时,只需新增一个工厂子类,无需修改任何现有代码——完全符合开闭原则


你的场景该不该用工厂方法?
判断标准是 → 用工厂方法否 → 用其他方式
产品种类多、频繁新增
需要遵循开闭原则
产品种类少且稳定简单工厂就够了
担心类数量膨胀考虑简单工厂

一句话总结:用类数量的膨胀换取零修改的扩展,值得还是不值?取决于产品变化的频率。


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

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

🔗 系列导航:

  • 上一篇:第2篇:简单工厂模式——把if-else搬个家
  • 下一篇:第4篇:抽象工厂模式——产品族一键创建
  • 返回: 《工厂模式·扩充系列》目录
  • 返回:《Java 23种设计模式:从踩坑到精通》总目录
http://www.jsqmd.com/news/1138645/

相关文章:

  • 理科论文AI写作怎么写?4款工具实验分析支持
  • Maya AI渲染技术:从Playblast到高质量渲染的完整解决方案
  • HFSS 2024 R2 仿真 SIW 漏波天线:从 2.4GHz 到 28GHz 的 3 种结构对比与波束扫描分析
  • 【2027最新】基于SpringBoot+Vue的大学生在线租房平台管理系统源码+MyBatis+MySQL
  • Linux join 命令超全详解:文本文件关联合并神器,数据处理必备
  • 交友平台XSS漏洞实战:从闭合textarea到Cookie窃取的3步完整复现
  • Paperxie|期刊论文智能撰写全功能详解,普通 / 核心 / SCI 投稿文稿一键标准化产出
  • 图形电镀 vs 全板电镀:3种PCB工艺对比与5大应用场景选择指南
  • Flutter/HarmonyOS 实战|中式美食厨房执行页:making 状态、步骤切换与下一步提示
  • 泉州装修设计公司怎么选?报价、效果图和施工落地都要看|陶墨装饰设计
  • 太顶了!输入需求,这几款AI写作辅助平台从摘要到致谢全搞定!
  • CAN支持那些波特率,seg相位设置
  • 从零开始玩转C语言(六):结构体篇
  • 2026年GEO搜索优化究竟是什么?揭开这一神秘技术的真实面纱!
  • 功率器件热仿真 vs 公式计算:以 Infineon IMW120R007M1H 为例的 3 种方法对比
  • 2026数字经济学数据分析的技术价值与应用前景
  • 【Java毕业设计】基于 SpringBoot+Vue 的学生平时成绩考核管理系统的设计与实现 基于前后端分离的课堂形成性考核数据管理系统(源码+文档+远程调试,全bao定制等)
  • 卡梅德生物技术快报|纳米抗体技术全套实操流程:AFB1 全合成文库淘选 + 分子对接定点突变参数手册
  • 【SkyWalking从入门到精通】第07篇:远程调试那些事——线上SkyWalking Agent的正确调试姿势
  • PCB散热过孔设计:0.3mm孔径与1.2mm间距的仿真优化与实测验证
  • 基于kvcache的RAG系统
  • AIGC率怎么降?2026年降低论文AI率的6大有效方法
  • 毕业论文写作指南:2026年AI辅助写论文的7个黄金步骤
  • 深度解析Foliate:基于GTK4与WebKitGTK的现代化电子书阅读器架构设计与实现原理
  • 2026.6.7 - AB包学习(1)
  • Claude Code 实战:AI 结对编程如何真正提效,把工具链跑成稳定流程
  • 光刻、刻蚀、薄膜沉积三大主设备 2024 市场格局与国产化挑战分析
  • 16路、24路与总线舵机控制器对比:3款方案选型指南与5大关键参数实测
  • 信创替换走到RFID打印这一步,多少人卡了壳
  • 专业的电销机器人系统哪家好