以下是一个简单的 PHP 命令行模式的示例:
<?php
// 命令接口
interface Command {
public function execute();
}
// 具体命令类
class LightOnCommand implements Command {
private $light;
public function __construct(Light $light) {
$this->light = $light;
}
public function execute() {
$this->light->turnOn();
}
}
// 接收者类
class Light {
public function turnOn() {
echo "灯打开了。\n";
}
public function turnOff() {
echo "灯关闭了。\n";
}
}
// 调用者类
class RemoteControl {
private $command;
public function setCommand(Command $command) {
$this->command = $command;
}
public function pressButton() {
$this->command->execute();
}
}
// 客户端代码
$light = new Light();
$lightOnCommand = new LightOnCommand($light);
$remoteControl = new RemoteControl();
$remoteControl->setCommand($lightOnCommand);
$remoteControl->pressButton();
在这个例子中,Command 接口定义了命令对象的基本方法 execute。LightOnCommand 类是具体的命令类,负责封装对 Light 对象的操作。Light 类是接收者,负责执行实际的操作。
RemoteControl 类是调用者,它持有一个命令对象,并在按下按钮时调用命令的 execute 方法。这种设计方式允许我们轻松地添加新的命令,而无需更改调用者的代码。
命令行模式的优势在于它将请求的发送者和接收者解耦,使得系统更加灵活。它还支持命令的队列、撤销等特性。
转载请注明出处:http://www.pingtaimeng.com/article/detail/11953/PHP