커맨트 패턴은 객체의 메서드(행위)를 클래스로 만들어 캡슐화하는 패턴이다.
즉, 실행될 기능을 캡슐화함으로써 주어진 여러 기능을 실행할 수 있는 재사용성이 높은 클래스를 설계하는 것이다.
어떤 객체(A)에서 다른 객체(B)의 메서드를 실행하려면 그 객체(B)를 참조하고 있어야 하는 의존성이 발생하는데, 커맨트 패턴을 적용하면 그 의존성을 제거할 수 있다.
→ 실행될 기능의 변경에도 호출자 클래스를 수정 없이 그대로 사용할 수 있도록 해준다.
Command
인터페이스HeaterOnCommand
, LampOnCommand
Button
Heater
, Lamp
참고 링크