设计模式-命令者模式

429 阅读1分钟

接收者: Reciever

命令:Comman

执行者:Invoker

用户:Client

执行伪代码:

        // 有一个接收者
        Reciever reciever = new Reciever();

        // 接收者能执行各种命令
        Command command1 = new ConcreteCommandOne(reciever);
        Command command2 = new ConcreteCommandTwo(reciever);

        // 有一个调用者,能执行给定的命令
        Invoker invoker = new Invoker();
        invoker.setCommand(command1).action();
        invoker.setCommand(command2).action();

example 源码

        // 拥有一个收音机
        AudioPlayer audioPlayer = new AudioPlayer();

        // 收音机拥有各种功能
        PlayCommand playCommand = new PlayCommand(audioPlayer);
        RewindCommand rewindCommand = new RewindCommand(audioPlayer);
        StopCommand stopCommand = new StopCommand(audioPlayer);

        // 有一个键盘
        Keypad keypad = new Keypad();

        // 执行给定的命令
        keypad.setCommand(playCommand).action();
        keypad.setCommand(rewindCommand).action();
        keypad.setCommand(stopCommand).action();
    }