PHP工厂模式实例解析
工厂模式在PHP中用于解耦对象创建,包括简单工厂(非GoF标准,封装if-else与new)、工厂方法(抽象工厂+子类实现createService)和抽象工厂(创建产品族,如Windows/MacUI组件),强调接口约束、依赖注入与PSR-4自动加载。
工厂模式在PHP中用于解耦对象创建,包括简单工厂(非GoF标准,封装if-else与new)、工厂方法(抽象工厂+子类实现createService)和抽象工厂(创建产品族,如Windows/Mac UI组件),强调接口约束、依赖注入与PSR-4自动加载。

工厂模式在PHP中主要用于解耦对象的创建过程,让类的实例化逻辑集中管理,便于扩展和维护。它不直接new具体类,而是通过一个“工厂”来决定创建哪个对象。
简单工厂模式:用一个函数或类统一创建对象
简单工厂不是GoF23种设计模式之一,但最易理解,适合入门。核心是把if-else判断对象类型和new操作封装起来。
- 定义一个工厂类(如PaymentFactory),提供静态方法create()
- 根据传入参数(如'alipay'、'wechat')返回对应支付类实例
- 各支付类(AlipayService、WechatService)实现同一接口(如PaymentInterface),保证调用一致性
工厂方法模式:让子类决定实例化哪个类
当产品种类增多、创建逻辑变复杂时,用工厂方法更灵活。它把对象创建延迟到子类中实现。
- 声明一个抽象工厂类(PaymentFactory),含抽象方法createService()
- 为每种支付方式写具体工厂(AlipayFactory、WechatFactory),各自实现createService()
- 客户端只依赖抽象工厂,运行时注入具体工厂,轻松切换实现
抽象工厂模式:创建一组相关或相互依赖的对象
适用于系统需要多套产品族(如不同平台的UI组件:Windows风格按钮+文本框,Mac风格按钮+文本框)。
- 定义抽象工厂(GuiFactory)和多个抽象产品(Button、TextBox)
- 实现具体工厂(WindowsFactory、MacFactory),每个都返回对应的一组具体产品
- 客户端代码不关心具体类型,只面向抽象工厂和抽象产品编程
PHP中构建工厂模式的关键是利用接口约束行为、用依赖注入替代硬编码new、配合自动加载(如Composer PSR-4)管理类路径。不需要过度设计,从简单工厂起步,按需升级到工厂方法或抽象工厂。基本上就这些。
火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。
















