コード例 #1
0
ファイル: command.php プロジェクト: luisOO/design-patterns
 public static function main()
 {
     $receiver = new Receiver("John");
     $command = new ConcreteCommand($receiver);
     $invoker = new Invoker($command);
     $invoker->action();
     $receiver = null;
     $command = null;
     $invoker = null;
 }
コード例 #2
0
ファイル: test.php プロジェクト: luisOO/design-patterns
 public static function main()
 {
     $receiver = new Receiver('phpppan');
     $pasteCommand = new PasteCommand($receiver);
     $copyCommand = new CopyCommand($receiver);
     $macroCommand = new DemoMacroCommand();
     $macroCommand->add($copyCommand);
     $macroCommand->add($pasteCommand);
     $invoker = new Invoker($macroCommand);
     $invoker->action();
     $macroCommand->remove($copyCommand);
     $invoker = new Invoker($macroCommand);
     $invoker->action();
 }
コード例 #3
0
ファイル: handle.php プロジェクト: zhaozhenxiang/MyDPByPHP
class Invoker
{
    private $command;
    public function __construct(Command $command)
    {
        $this->command = $command;
    }
    public function action()
    {
        $this->command->execute();
    }
    public function unaction()
    {
        $this->command->undo();
    }
}
//生产接受者
$Reciver2 = new Reciver2();
$Reciver1 = new Reciver1();
//建立接受者和command之间关系
$command1 = new Command1($Reciver1);
$command2 = new Command1($Reciver2);
//生产调度者
$invoker1 = new Invoker($command1);
$invoker2 = new Invoker($command2);
//使用调度者
$invoker1->action();
$invoker1->unaction();
//使用调度者
$invoker2->action();
$invoker2->unaction();
コード例 #4
0
class Receiver
{
    // 接收者角色
    private $_name;
    public function __construct($name)
    {
        $this->_name = $name;
    }
    public function action()
    {
        echo 'receive some cmd:' . $this->_name;
    }
}
class Invoker
{
    // 请求者角色
    private $_command;
    public function __construct(Command $command)
    {
        $this->_command = $command;
    }
    public function action()
    {
        $this->_command->execute();
    }
}
$receiver = new Receiver('hello world');
$command = new ConcreteCommand($receiver);
$invoker = new Invoker($command);
$invoker->action();
コード例 #5
0
 public function testInvoker()
 {
     $command = new AddRequirementCommand();
     $invoker = new Invoker($command);
     $invoker->action();
 }