在PHP编程中,设计模式是提高代码可重用性、可维护性和扩展性的重要手段。以下将通过实例介绍几种常见的PHP设计模式,帮助您更好地理解和应用这些模式。
单例模式(Singleton)
单例模式确保一个类只有一个实例,并提供一个全局访问点。

| 类名 | 方法名 | 描述 |
|---|---|---|
| Singleton | getInstance() | 获取类的唯一实例 |
| Singleton | someMethod() | 实例方法,演示功能 |
```php
class Singleton {
private static $instance = null;
private function __construct() {}
public static function getInstance() {
if (self::$instance == null) {
self::$instance = new Singleton();
}
return self::$instance;
}
public function someMethod() {
// 实例方法
}
}
```
观察者模式(Observer)
观察者模式定义对象间的一对多依赖关系,当一个对象改变状态时,所有依赖于它的对象都会得到通知。
| 类名 | 方法名 | 描述 |
|---|---|---|
| Subject | attach() | 添加观察者 |
| Subject | detach() | 移除观察者 |
| Subject | notify() | 通知所有观察者 |
| Observer | update() | 观察者接收到通知后执行的操作 |
```php
class Subject {
private $observers = [];
public function attach(Observer $observer) {
$this->observers[] = $observer;
}
public function detach(Observer $observer) {
$key = array_search($observer, $this->observers);
if ($key !== false) {
unset($this->observers[$key]);
}
}
public function notify() {
foreach ($this->observers as $observer) {
$observer->update();
}
}
}
class Observer {
public function update() {
// 观察者接收到通知后执行的操作
}
}
```
职责链模式(Chain of Responsibility)
职责链模式使多个对象都有机会处理请求,从而避免请求发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递请求,直到有一个对象处理它。
| 类名 | 方法名 | 描述 |
|---|---|---|
| Handler | handle() | 处理请求 |
| ConcreteHandlerA | handle() | 处理特定请求的类 |
| ConcreteHandlerB | handle() | 处理特定请求的类 |
```php
abstract class Handler {
protected $successor;
public function setSuccessor(Handler $successor) {
$this->successor = $successor;
}
public function handle() {
if ($this->successor !== null) {
$this->successor->handle();
}
}
}
class ConcreteHandlerA extends Handler {
public function handle() {
// 处理特定请求的逻辑
echo "







