private $_receiver = null; public function __construct($receiver) { $this->_receiver = $receiver; } public function execute() { $this->_receiver->action(); $this->_receiver->action1(); } } $objReceiver = new Receiver("No.1"); $objReceiver1 = new Receiver("No.2"); $objReceiver2 = new Receiver("No.3"); $objCommand = new ConcreteCommand($objReceiver); $objCommand1 = new ConcreteCommand1($objReceiver); $objCommand2 = new ConcreteCommand($objReceiver1); $objCommand3 = new ConcreteCommand1($objReceiver1); $objCommand4 = new ConcreteCommand2($objReceiver2); $objInvoker = new Invoker(); $objInvoker->setCommand($objCommand); $objInvoker->setCommand($objCommand1); $objInvoker->executeCommand(); echo "\n"; $objInvoker->removeCommand($objCommand1); $objInvoker->executeCommand(); echo "\n"; $objInvoker->setCommand($objCommand2); $objInvoker->setCommand($objCommand3); $objInvoker->setCommand($objCommand4); $objInvoker->executeCommand();
<?php require_once './Command.php'; require_once './PlayCommand.php'; require_once './PauseCommand.php'; require_once './StopCommand.php'; require_once './Invoker.php'; require_once './Player.php'; $invoker = new Invoker(); $player = new Player(); $playCommand = new PlayCommand($player); $pauseCommand = new PauseCommand($player); $invoker->setCommand($playCommand); $invoker->run(); $invoker->undo(); $invoker->setCommand($pauseCommand); $invoker->run(); $invoker->undo();