Command
1 커맨드 패턴(Command Pattern)
- 커맨드 패턴은 요청을 객체의 형태로 캡슐화하여 사용자가 보낸 요청을 나중에 이용할 수 있도록 매서드 이름, 매개변수 등 요청에 필요한 정보를 저장 또는 로깅, 취소할 수 있게 하는 패턴입니다.
2 문제 상황
- 텍스트 편집기 앱을 개발 중이며, 다양한 기능을 가진 버튼들이 있는 툴바를 만들고 있다고 가정해봅시다.
Button클래스를 만들어 툴바의 버튼과 다이얼로그의 버튼에 사용하려 합니다.- 문제는 각 버튼마다 실행해야 할 기능이 다르다는 것입니다.
- 이 기능들을
Button클래스의 하위 클래스로 만들면 어떻게 될까요?- 기능별로 많은 하위 클래스가 필요하게 됩니다.
- 기능이 중복되는 경우가 있습니다. (예를 들어 툴바의 복사 버튼과 메뉴의 복사 메뉴 등)
- 이는 유지보수를 어렵게 만듭니다.
Button클래스를 변경하면 모든 하위 클래스에 영향을 미칩니다.