[java] 커맨드 패턴

커맨드 패턴은 객체의 메서드 호출을 객체로 래핑하여 메서드 호출, 매개변수 및 실행을 캡슐화하는 디자인 패턴입니다. 이 패턴은 실행가능한 명령을 나타내는 객체를 만들고, 이 객체를 통해 실행 작업을 캡슐화하고, 실행작업을 계획할 수 있게 합니다.

커맨드 패턴의 구성요소

커맨드 패턴은 다음과 같은 구성요소로 구성됩니다.

Java에서의 커맨드 패턴 예제

다음은 Java에서의 간단한 커맨드 패턴 예제입니다.

// Command interface
public interface Command {
    void execute();
}

// ConcreteCommand class
public class ConcreteCommand implements Command {
    private Receiver receiver;

    public ConcreteCommand(Receiver receiver) {
        this.receiver = receiver;
    }

    public void execute() {
        receiver.action();
    }
}

// Receiver class
public class Receiver {
    public void action() {
        System.out.println("Receiver is doing something");
    }
}

// Invoker class
public class Invoker {
    private Command command;

    public void setCommand(Command command) {
        this.command = command;
    }

    public void executeCommand() {
        command.execute();
    }
}

// Client class
public class Client {
    public static void main(String[] args) {
        Receiver receiver = new Receiver();
        Command command = new ConcreteCommand(receiver);
        Invoker invoker = new Invoker();

        invoker.setCommand(command);
        invoker.executeCommand();
    }
}

위의 예제에서는 Receiver를 호출하여 ConcreteCommand를 실행하는 Invoker를 생성했습니다. 이렇게 함으로써 명령이 요청되었을 때, 실행가능한 명령 객체를 사용하여 작업을 수행할 수 있게 됩니다.

커맨드 패턴은 Java에서 유연한 설계를 가능하게 하며, 실행가능한 명령을 처리하는 방법을 추상화함으로써 객체 간 결합을 완화시킵니다.

더 많은 자세한 내용은 커맨드 패턴을 참고하세요.