php 策略模式
时间: 2023-06-29 18:09:25 浏览: 64
策略模式是一种常见的设计模式,可以在 PHP 中很容易地实现。
策略模式的核心思想是将算法封装成一个个独立的策略,然后在运行时根据不同的情况选择不同的策略。这样可以使得算法的变化独立于使用算法的客户端,提高代码的可维护性和扩展性。
下面是一个 PHP 中的策略模式的例子:
```php
// 定义策略接口
interface PaymentStrategy {
public function pay($amount);
}
// 实现不同的策略
class CreditCardStrategy implements PaymentStrategy {
public function pay($amount) {
echo "Paid $amount via Credit Card.";
}
}
class PaypalStrategy implements PaymentStrategy {
public function pay($amount) {
echo "Paid $amount via Paypal.";
}
}
// 使用策略
class PaymentContext {
private $strategy;
public function __construct(PaymentStrategy $strategy) {
$this->strategy = $strategy;
}
public function executeStrategy($amount) {
$this->strategy->pay($amount);
}
}
// 示例代码
$cc = new CreditCardStrategy();
$paypal = new PaypalStrategy();
$payment = new PaymentContext($cc);
$payment->executeStrategy(100);
$payment = new PaymentContext($paypal);
$payment->executeStrategy(200);
```
在这个例子中,我们定义了一个 `PaymentStrategy` 接口,包含了一个 `pay()` 方法,然后实现了两个不同的策略 `CreditCardStrategy` 和 `PaypalStrategy`。最后,我们使用 `PaymentContext` 来执行不同的策略。
这个例子很简单,但是可以看到策略模式的优点:算法的变化独立于客户端代码,我们可以轻松地增加、删除或修改不同的策略,而不需要修改客户端代码。