登录
首页 >  文章 >  php教程

PHP工厂模式实例解析

时间:2026-05-01 23:47:49 404浏览 收藏

本文深入解析了PHP中工厂模式的三种实现方式——简单工厂、工厂方法和抽象工厂,通过支付系统和跨平台UI组件等典型场景,清晰展示了如何利用接口约束、依赖注入和PSR-4自动加载来解耦对象创建逻辑,避免硬编码new操作;强调从轻量级简单工厂起步,按业务复杂度渐进式升级模式,兼顾可维护性与扩展性,为PHP开发者提供了一套实用、灵活且符合现代开发规范的对象创建实践指南。

PHP工厂模式应用实例_PHP构建设计模式的基本方法

工厂模式在PHP中主要用于解耦对象的创建过程,让类的实例化逻辑集中管理,便于扩展和维护。它不直接new具体类,而是通过一个“工厂”来决定创建哪个对象。

简单工厂模式:用一个函数或类统一创建对象

简单工厂不是GoF23种设计模式之一,但最易理解,适合入门。核心是把if-else判断对象类型和new操作封装起来。

  • 定义一个工厂类(如PaymentFactory),提供静态方法create()
  • 根据传入参数(如'alipay''wechat')返回对应支付类实例
  • 各支付类(AlipayServiceWechatService)实现同一接口(如PaymentInterface),保证调用一致性

工厂方法模式:让子类决定实例化哪个类

当产品种类增多、创建逻辑变复杂时,用工厂方法更灵活。它把对象创建延迟到子类中实现。

  • 声明一个抽象工厂类(PaymentFactory),含抽象方法createService()
  • 为每种支付方式写具体工厂(AlipayFactoryWechatFactory),各自实现createService()
  • 客户端只依赖抽象工厂,运行时注入具体工厂,轻松切换实现

抽象工厂模式:创建一组相关或相互依赖的对象

适用于系统需要多套产品族(如不同平台的UI组件:Windows风格按钮+文本框,Mac风格按钮+文本框)。

  • 定义抽象工厂(GuiFactory)和多个抽象产品(ButtonTextBox
  • 实现具体工厂(WindowsFactoryMacFactory),每个都返回对应的一组具体产品
  • 客户端代码不关心具体类型,只面向抽象工厂和抽象产品编程

PHP中构建工厂模式的关键是利用接口约束行为、用依赖注入替代硬编码new、配合自动加载(如Composer PSR-4)管理类路径。不需要过度设计,从简单工厂起步,按需升级到工厂方法或抽象工厂。基本上就这些。

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《PHP工厂模式实例解析》文章吧,也可关注golang学习网公众号了解相关技术文章。

资料下载
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>