单例模式确保全局唯一实例,需私有构造、静态实例和获取方法,并防克隆与反序列化;工厂模式解耦创建逻辑,分简单/工厂方法/抽象工厂;策略模式运行时切换算法,封装为实现统一接口的类;观察者模式实现松耦合通知,需防内存泄漏。

单例模式:确保全局唯一实例
面试常问“如何保证一个类只有一个实例”,核心是私有化构造方法、静态私有属性保存实例、提供公共静态方法获取实例。注意防止克隆和反序列化破坏单例,需重写 __clone() 和 __wakeup() 方法。PHP 7.4+ 中可配合 final 类增强安全性,但实际项目中要谨慎使用——过度依赖单例易导致隐式耦合和测试困难。
工厂模式:解耦对象创建逻辑
分为简单工厂(非GoF标准,适合小场景)、工厂方法(子类决定实例化哪个类)和抽象工厂(创建产品族)。PHP 中常用数组配置 + 反射实现灵活工厂,例如根据配置字符串动态实例化支付类:new $className() 或 ReflectionClass::newInstanceArgs()。关键点在于把 new 操作从业务代码中移出,便于替换实现或统一管理依赖。
策略模式:运行时切换算法
定义一系列算法,封装每个算法为独立类,让它们实现同一接口。客户端通过组合方式持有策略对象,调用统一方法(如 execute())。PHP 中常见于折扣计算、日志驱动、缓存适配器等场景。优势是避免大量 if-else 或 switch,新增策略无需修改原有逻辑。注意策略类应无状态,或状态由上下文传入,否则影响复用性。
Magento是一套专业开源的PHP电子商务系统。Magento设计得非常灵活,具有模块化架构体系和丰富的功能。易于与第三方应用系统无缝集成。Magento开源网店系统的特点主要分以下几大类,网站管理促销和工具国际化支持SEO搜索引擎优化结账方式运输快递支付方式客户服务用户帐户目录管理目录浏览产品展示分析和报表Magento 1.6 主要包含以下新特性:•持久性购物 - 为不同的
观察者模式:实现松耦合事件通知
PHP 原生支持 SplSubject 和 SplObserver,但更推荐手动实现:被观察者维护观察者列表,提供 attach()、detach()、notify() 方法;观察者实现 update()。Laravel 的事件系统就是典型应用。注意避免循环引用导致内存泄漏,可使用弱引用(WeakMap,PHP 8.0+)或在销毁时主动清理监听器。
立即学习“PHP免费学习笔记(深入)”;










