PHP工厂模式实例解析
作者:小月亮
时间:2025-12-11
浏览:0
工厂模式在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)管理类路径。不需要过度设计,从简单工厂起步,按需升级到工厂方法或抽象工厂。基本上就这些。
作者最新文章
纯纯写作
2026-09-16 17:42
JMeter入门:创建HTTP请求并验证响应结果
2026-09-02 10:20
文件表格制作教程:选择Word或Excel的判断方法
2026-09-02 09:45
多个PPT怎么一次性转PDF?PPT批量转换工具有哪些?
2026-09-02 06:00
PDF图纸转CAD的3种方法及比例校准指南
2026-09-01 18:36
上一篇:
U盘传苹果本方法及使用技巧
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多


































