第2篇:简单工厂模式——把if-else搬个家
2026/7/6 12:13:30 网站建设 项目流程

第2篇:简单工厂模式——把if-else搬个家

摘要:简单工厂把 if-else 从业务代码搬到了工厂类,实现了初步解耦。本文详细讲解其实现方式、优缺点,并指出它的核心缺陷——依然违反开闭原则,适合产品种类少的场景。

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


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

publicclassSenderFactory{publicstaticSendercreate(Stringtype){switch(type){case"sms":returnnewSmsSender();case"email":returnnewEmailSender();default:thrownewIllegalArgumentException("未知渠道");}}}

简单工厂是最直接的工厂形态:一个工厂类,一个静态方法,根据参数返回不同产品。调用方瞬间清爽了:

Sendersender=SenderFactory.create("sms");sender.send("你好");

但问题并没有消失——if-else 只是从业务代码搬到了工厂类里。新增产品还是要改工厂类,依然违反开闭原则。


你的场景该不该用简单工厂?
判断标准是 → 用简单工厂否 → 用其他方式
产品种类少(≤3种)且基本不变
只想快速解耦,不想引入过多类
产品种类多或频繁新增考虑工厂方法
需要遵循开闭原则考虑工厂方法

一句话总结:简单工厂是工厂模式的“最小可用版本”,够用就好,别过度设计。


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

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

🔗 系列导航:

  • 上一篇:第1篇:一段 if-else 的代码,为什么成了“屎山”?

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

  • 《工厂模式 · 扩充系列》目录

  • 《Java 23 种设计模式:从踩坑到精通》总目录

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询