커맨드 패턴 (Command Pattern) 요청을 캡슐화하여 호출자(invoker) 와 수신자 (receiver) 를 분리하는 패턴 요청을 하는 쪽과 요청을 처리하는 쪽을 디커플링 시킨다. 요청을 처리하는 방법이 바뀌더라도 호출자 코드는 변경되지 않는다. 커맨드 패턴 적용 전 불을 껏다 켰다 할 수 있는 Button 클래스가 있고 불에 해당하는 Light 클래스가 있다고 해보자. public class Light { private boolean isOn; public void on() { System.out.println("불을 켭니다."); this.isOn = true; } public void off() { System.out.println("불을 끕니다."); this.isOn = false; ..