Commandパターンのサンプルコードです。
package org.example.command;
public interface Command {
public void execute() throws Exception;
}
package org.example.command;
public class Receiver {
public void action()
{
}
}
package org.example.command;
public class ConcreteCommand implements Command{
@Override
public void execute() throws Exception {
Receiver receiver = new Receiver();
receiver.action();
}
}
package org.example.command;
public class Main {
public static void main(String[] args)
{
Command command = new ConcreteCommand();
try {
command.execute();
} catch (Exception e) {
e.printStackTrace();
}
}
}
CommandパターンはReceiverに対する命令(Command)をオブジェクト化して使用します。
こうすることによって、命令のバッチ処理、履歴保存ができます。
undo/redo処理を実装する場合もこのパターンを適用する場合が多いです。