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)管理类路径。不需要过度设计,从简单工厂起步,按需升级到工厂方法或抽象工厂。基本上就这些。
作者最新文章
漫蛙漫画app下载入口
2026-10-13 13:18
漫蛙漫画免费下载最新版本
2026-10-13 13:18
漫蛙网页版快捷入口
2026-10-13 13:16
漫蛙manwa2官方网页链接下载最新版v3.57
2026-10-13 13:16
漫蛙manwa在线浏览入口
2026-10-13 13:15
上一篇:
U盘传苹果本方法及使用技巧
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多










































