
第2篇简单工厂模式——把if-else搬个家摘要简单工厂把 if-else 从业务代码搬到了工厂类实现了初步解耦。本文详细讲解其实现方式、优缺点并指出它的核心缺陷——依然违反开闭原则适合产品种类少的场景。本文是《Java 23 种设计模式从踩坑到精通》工厂模式长文的扩充短文第2篇帮助你碎片化掌握核心知识点。你有没有写过这样的代码publicclassSenderFactory{publicstaticSendercreate(Stringtype){switch(type){casesms:returnnewSmsSender();caseemail:returnnewEmailSender();default:thrownewIllegalArgumentException(未知渠道);}}}简单工厂是最直接的工厂形态一个工厂类一个静态方法根据参数返回不同产品。调用方瞬间清爽了SendersenderSenderFactory.create(sms);sender.send(你好);但问题并没有消失——if-else 只是从业务代码搬到了工厂类里。新增产品还是要改工厂类依然违反开闭原则。你的场景该不该用简单工厂判断标准是 → 用简单工厂否 → 用其他方式产品种类少≤3种且基本不变✅❌只想快速解耦不想引入过多类✅❌产品种类多或频繁新增❌考虑工厂方法需要遵循开闭原则❌考虑工厂方法一句话总结简单工厂是工厂模式的“最小可用版本”够用就好别过度设计。完整长文入口 本文是工厂模式扩充系列的第2篇。如果你想一次性阅读完整内容含UML、三种工厂对比、框架源码、面试追问等请查看原长文 《Java 23 种设计模式从踩坑到精通 | 工厂模式》 系列导航上一篇第1篇一段 if-else 的代码为什么成了“屎山”下一篇第3篇工厂方法模式——把变化隔离到子类《工厂模式 · 扩充系列》目录《Java 23 种设计模式从踩坑到精通》总目录