十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
命令模式,又称之为动作模式或者事务模式,属于行为型的设计模式。
将不同的请求封装成不同的请求对象,以便使用不同的请求;
角色都会用饭馆来举例子:
命令下达者:顾客
命令接受者:服务员
命令本身: 菜单
命令执行者:厨师
创新互联主营石屏网站建设的网络公司,主营网站建设方案,手机APP定制开发,石屏h5小程序制作搭建,石屏网站营销推广欢迎石屏等地区企业咨询
增加类的数量进而增加复杂度。
//命令角色的抽象接口
interface CommandInterface {
public function execute();
}
//命令角色(类似于菜单)
class PrintCommand implements CommandInterface {
private $receiver;
public function __construct(Receiver $receiver) {
$this->receiver = $receiver;
}
public function execute() {
$this->receiver->exec('Hello World');
}
}
//执行者(类似于初始)
class Receiver {
public function exec(string $str) {
echo $str;
}
}
//命令接受者(类似于服务员)
class Invoker {
private $command;
public function setCommand(CommandInterface $cmd) {
$this->command = $cmd;
}
public function run() {
$this->command->execute();
}
}
//调用端==========================================================
$receiver = new Receiver();
$invoker = new Invoker();
$invoker->setCommand(new PrintCommand($receiver));
$invoker->run();