php实现模式
PHP 实现设计模式的方法
设计模式是解决特定问题的可重用方案,PHP 中实现设计模式可以提升代码的可维护性和扩展性。以下是几种常见设计模式的实现方式。
单例模式
单例模式确保一个类只有一个实例,并提供一个全局访问点。

class Singleton {
private static $instance;
private function __construct() {}
public static function getInstance() {
if (self::$instance === null) {
self::$instance = new self();
}
return self::$instance;
}
}
工厂模式
工厂模式通过一个工厂类创建对象,隐藏具体实现细节。
interface Product {
public function getName();
}
class ConcreteProduct implements Product {
public function getName() {
return "ConcreteProduct";
}
}
class ProductFactory {
public static function createProduct(): Product {
return new ConcreteProduct();
}
}
观察者模式
观察者模式定义对象间的一对多依赖关系,当一个对象状态改变时,所有依赖它的对象都会收到通知。

interface Observer {
public function update($data);
}
class ConcreteObserver implements Observer {
public function update($data) {
echo "Received update with data: " . $data;
}
}
class Subject {
private $observers = [];
public function attach(Observer $observer) {
$this->observers[] = $observer;
}
public function notify($data) {
foreach ($this->observers as $observer) {
$observer->update($data);
}
}
}
策略模式
策略模式定义一系列算法,并将每个算法封装起来,使它们可以互相替换。
interface Strategy {
public function execute();
}
class StrategyA implements Strategy {
public function execute() {
echo "Executing Strategy A";
}
}
class Context {
private $strategy;
public function setStrategy(Strategy $strategy) {
$this->strategy = $strategy;
}
public function executeStrategy() {
$this->strategy->execute();
}
}
适配器模式
适配器模式将一个类的接口转换成客户希望的另一个接口。
class Adaptee {
public function specificRequest() {
return "Adaptee's specific request";
}
}
interface Target {
public function request();
}
class Adapter implements Target {
private $adaptee;
public function __construct(Adaptee $adaptee) {
$this->adaptee = $adaptee;
}
public function request() {
return $this->adaptee->specificRequest();
}
}
总结
PHP 中实现设计模式需要根据具体场景选择合适的模式。单例模式适合全局唯一实例,工厂模式适合对象创建,观察者模式适合事件驱动场景,策略模式适合算法切换,适配器模式适合接口转换。






