命令模式
命令模式(Command Pattern)是一种行为型设计模式,它将请求封装成对象,从而允许你使用不同的请求、队列或者日志来参数化其他对象。
在PHP中实现命令模式的一些示例代码如下:
1、创建一个抽象命令类(Command),定义命令的接口:
abstract class Command {
protected $receiver;
public function __construct($receiver) {
$this->receiver = $receiver;
}
abstract public function execute();
}
2、创建具体的命令类(ConcreteCommandA和ConcreteCommandB),实现抽象命令类中的接口:
class ConcreteCommandA extends Command {
public function execute() {
$this->receiver->actionA();
}
}
class ConcreteCommandB extends Command {
public function execute() {
$this->receiver->actionB();
}
}
3、创建一个接收者类(Receiver),定义接收者的行为:
class Receiver {
public function actionA() {
echo "执行操作A\n";
}
public function actionB() {
echo "执行操作B\n";
}
}
4、创建一个调用者类(Invoker),调用命令对象执行命令:
class Invoker {
protected $command;
public function setCommand($command) {
$this->command = $command;
}
public function executeCommand() {
$this->command->execute();
}
}
在客户端中创建具体命令对象和接收者对象,并将它们传递给调用者对象:
$receiver = new Receiver();
$commandA = new ConcreteCommandA($receiver);
$commandB = new ConcreteCommandB($receiver);
$invoker = new Invoker();
$invoker->setCommand($commandA);
$invoker->executeCommand();
$invoker->setCommand($commandB);
$invoker->executeCommand();
运行上述代码,输出结果为:
plaintextCopy code执行操作A
执行操作B
说明命令模式已经成功地执行了命令。
评论
共0 条评论