第8篇:六大设计原则在工厂模式中的体现

第8篇:六大设计原则在工厂模式中的体现

摘要:工厂模式如何体现SOLID六大设计原则?本文逐一剖析,并用总结对比表帮你一眼看清三种工厂的差异与选型,完成工厂模式的全面学习。

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


你有没有想过,工厂模式为什么能如此优雅地解决对象创建问题?因为它深刻践行了SOLID六大设计原则。看懂这些原则,才算真正理解工厂模式。

设计原则 在工厂模式中的体现
单一职责原则(SRP) 每个具体工厂只负责创建一种产品,职责内聚
开闭原则(OCP) 工厂方法新增产品只需加新工厂类,无需修改现有代码
里氏替换原则(LSP) 客户端使用抽象产品类型,具体产品可任意替换
依赖倒置原则(DIP) 客户端依赖抽象工厂和抽象产品接口,而非具体实现类
**接口隔离原则(ISP)**​ 抽象工厂按产品族维度拆分接口,避免"胖接口"
迪米特法则(LoD) 客户端只需知道工厂和产品接口,无需了解内部创建细节

举个具体的例子 :在工厂方法模式中,客户端代码只依赖 SenderFactory接口和 Sender接口,这就是依赖倒置 。新增 WechatSender时,只需新增 WechatSenderFactory,无需改动任何现有代码,这就是开闭原则 。每个工厂只干一件事,这就是单一职责


你的场景该不该深究设计原则?
判断标准 是 → 深入理解 否 → 先用好模式
想写出高维护性的代码
准备架构师级别的面试
目前只求快速完成任务 先会用模式

总结对比一览

对比维度 简单工厂 工厂方法 抽象工厂
GoF收录
工厂数量 1个 N个(每产品一工厂) N个(每产品族一工厂)
产品数量 多种 一种(每工厂) 一族(多产品)
开闭原则 违反 符合 部分符合
类复杂度 ★☆☆☆ ★★★☆ ★★★★
推荐指数 ★★★☆ ★★★★★ ★★★★
典型应用 Calendar.getInstance() Spring FactoryBean MyBatis SqlSessionFactory

建议:日常开发中,优先考虑简单工厂(够用即止);产品种类多且频繁扩展时升级为工厂方法;系统存在产品族概念时(如多端UI、多数据库)果断使用抽象工厂。


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

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

🔗 系列导航:

相关推荐
choumin9 小时前
创建型模式——工厂方法模式
c++·设计模式·工厂方法模式·创建型模式
小Ti客栈10 小时前
Spring Boot 集成 Springdoc-OpenAPI 与 Knife4j实现接口文档与可视化调试
java·spring boot·后端
Ai拆代码的曹操11 小时前
Spring 事务 REQUIRES_NEW 嵌套调用:连接池翻倍的秘密
java·后端·spring
动恰客流统计11 小时前
ReID边缘计算视觉统计:餐饮店客流增长的数字化破局路径
java·大数据·运维·人工智能
Ivanqhz12 小时前
Rust &‘static str浅析
java·前端·javascript·rust
weixin_4196583114 小时前
Docker 搭建 Jenkins 服务
java·docker·jenkins
captain37615 小时前
多线程线程安全问题
java·java-ee
CoderYanger15 小时前
A.每日一题:1979. 找出数组的最大公约数
java·程序人生·算法·leetcode·面试·职场和发展·学习方法
灵极海15 小时前
LangChain4j RAG 实战完整指南:从入门到踩坑
java·langchain
yaoxin52112315 小时前
476. Java 反射 - 调用方法
java·开发语言