<?php
// 命令模式
interface Command
{
public function execute();
}
/**
* concrete command, 具体的命令
*/
class ConcreteCommand implements Command
{
private $receiver;
public function __construct(Receiver $r) {
$this->receiver = $r;
}
public function execute() {
$this->receiver->doAction();
}
}
/**
* 接收者, 命令的执行者
*/
class Receiver
{
public function doAction() {
echo 'Action has been taken!<br/>';
}
}
/**
* 请求者, 命令的请求者
*/
class Invoker
{
private $cmd;
public function __construct(Command $cmd) {
$this->cmd = $cmd;
}
/**
* call command execute
*/
public function action() {
$this->cmd->execute();
}
}
// test code
$r = new Receiver();
$cmd = new ConcreteCommand($r);
$invoker = new Invoker($cmd);
$invoker->action();
命令模式的简单实现
最新推荐文章于 2024-08-23 22:14:27 发布