Command 패턴은 요청을 객체로 캡슐화합니다 — 액션을 그 모든 정보를 가진 독립적인 객체로 바꿉니다. 이는 큐잉, 로깅, 실행 취소/다시 실행, 그리고 요청자와 실행자의 분리를 가능하게 합니다.
Command 패턴이 하는 일
COMMAND → 액션/요청을 객체로 캡슐화 (그 데이터와 execute 메서드를 가짐):
→ command 객체는 무엇을 할지 알고 그것을 할 정보를 가짐
→ 호출자(invoker)는 command의 세부사항을 모른 채 command를 실행
→ 액션을 호출하는 객체와 수행하는 객체를 분리
→ "액션을 객체로 바꿈" → 저장, 전달, 큐잉, 로깅, 실행 취소 가능
예시
{
() { . = doc; . = text; }
() { ..(.); }
() { ..(.); }
}
cmd = (doc, );
cmd.();
cmd.();
