工厂模式通过将对象创建逻辑集中封装,解耦业务代码与具体实现,支持动态类型选择、统一配置管理及后续架构演进。
工厂模式解决了对象创建与使用紧耦合的问题,把“怎么造对象”从业务逻辑里摘出来,让代码更易扩展、维护和测试。
没有工厂时,每新增一个产品类型,往往要在多处 new 具体类,比如支付模块里直接写 new Alipay() 或 new WechatPay()。一旦加新支付方式(如 ApplePay),就得改所有用到的地方。工厂模式把创建过程集中到一个地方(工厂类),业务代码只面向接口编程,完全不知道具体实现是谁。
有些对象创建成本高(如数据库连接池)、依赖复杂(需注入多个服务)、或需要特定初始化(如设置超时、重试策略)。工厂可以封装这些细节,确保每次创建都符合规范。
lient 工厂可统一设置连接池大小、默认 header、SSL 配置实际项目中,对象类型常由配置、参数、用户行为等外部因素决定。工厂模式天然适配这种场景,把“选哪个类”交给工厂决策,而不是硬编码在业务分支里。
工厂不是终点,而是抽象的第一步。它让“创建”这件事变得可插拔——今天是简单静态工厂,明天可升级为抽象工厂(管理产品族),后天接入 Spring 的 BeanFactory,甚至对接 SPI 机制。