简单工厂模式
Simple Factory Pattern
📌 概念释义与技术定位 (Definition & Overview)
简单工厂模式是一种通过工厂类根据参数动态创建符合特定抽象基类实例的创建型设计模式,旨在解耦对象创建逻辑与客户端调用,实现对象创建与使用的分离。
简单工厂模式(Simple Factory Pattern),又称静态工厂方法模式,是一种非 GOF 标准定义的创建型设计模式。其核心在于引入一个工厂类,封装了具体产品的实例化逻辑,客户端仅需传入参数即可获取对象,而无需知晓对象的创建细节。该模式通过参数控制实例类型,将对象创建过程从业务逻辑中剥离,使系统结构更加清晰。尽管它简化了对象创建流程,但违反了开闭原则,因为新增产品类型通常需要修改工厂类代码。
在现代计算架构中,简单工厂模式扮演着轻量级对象工厂的角色,特别适用于对象创建逻辑相对固定、产品种类较少且客户端不关心具体创建过程的场景。它作为工厂模式家族中最基础的形式,常被用作更复杂工厂模式(如工厂方法模式、抽象工厂模式)的入门示例或特例。其核心价值在于降低客户端代码的复杂度,提升代码的可读性和可维护性,但在系统扩展性要求高的场景下,其静态绑定的特性可能成为架构演进的瓶颈。
⚙️ 核心架构与工作机制 (Technical Mechanism)
该模式的底层运行机制依赖于三个核心角色的协作:工厂角色(Factory)、抽象产品角色(Abstract Product)和具体产品角色(Concrete Product)。工厂类内部维护着创建逻辑,通常包含一系列静态工厂方法,每个方法对应一种具体产品的实例化。当客户端调用工厂方法时,工厂类根据传入的参数(如类型标识、配置数据等)判断应创建哪种具体产品,并返回对应的实例。这种机制使得对象的创建过程被封装在工厂类内部,客户端只需关注如何使用对象,而无需关心对象的构造细节。然而,这种设计也意味着工厂类成为了系统的单点依赖,任何新产品类型的引入都需要修改工厂类代码。
📖 权威专著深度引证与原文精粹 (Expert Book Insights)
2 本专著引用《云原生技术与架构实践年货小红书》
it-ebooks
“3)设计模式 在编码过程中,前人抽象出来的 23 个设计模式也是很值得参考的: 【创建型模式】 l 简单工厂模式(Simple Factory)”
《微信小游戏开发:前端篇》
李艺
“工厂模式分为3种: 简单工厂模式(Simple Factory Pattern)、工厂方法模式和抽象工厂模式。”
🚀 典型应用场景 (Industrial Applications)
JDK 中 DateFormat 类的实例化场景
BitmapFactory 生成 Bitmap 对象的过程
数据库连接池或资源管理器的对象创建
配置驱动的对象初始化(如根据配置类型创建不同服务实例)
⚖️ 技术优势与工程权衡 (Trade-offs & Pros/Cons)
🟢 核心优势与技术特性
- + 实现对象创建与使用的分离,降低客户端代码复杂度
- + 代码结构清晰,易于理解和维护
- + 适用于对象创建逻辑固定且产品种类较少的场景
🔴 工程考量与潜在挑战
- - 新增产品类型需修改工厂类代码,违反开闭原则
- - 工厂类可能变得臃肿,难以管理大量产品类型的创建逻辑
- - 缺乏灵活性,无法动态扩展产品类型而不修改现有代码
❓ 常见问题速查 (FAQ)
为什么在现代软件架构中需要重视 简单工厂模式?
在何种场景下应当优先选用 简单工厂模式?
🔗 推荐协同基座模型与开源工具链
学术引证与可靠性指数
引用专著数
全库出现频次
本词条定义与原理解析直接溯源自行业权威专著与最新同行评审成果,保障工程决策严谨性。