명령 패턴(Command Patterns)란
명령 패턴: 요청 자체를 캡슐화 하는 것입니다. 이를 통해 요청이 서로 다른 사용자(클라이언트)를 매개변수로 만들고 요청을
대기 시키거나 로깅하며, 되돌릴 수 있는 연산을 지원합니다. (goF의 디자인 패턴)
이러한 문장을 매우 간결하게 요약하면 "명령 패턴은 메서드 호출을 실체화 한 것이다."
실체화는 어떤 개념을 변수에 저장하거나 함수에 전달할 수 있도록 데이터, 즉 객체로 바꿀 수 있다는 걸 의미한다.
"메서드 호출을 실체화한 것" 아라고 한 것은 함수 호출을 객체로 감쌌다는 의미이며 명령 패턴은 콜백을 객체지향적
으로 표현한 것 이라 한다. (게임 프로그래밍 패턴)
프로젝트 정보(Project Informaion)
사진 및 프로젝트 설명
처음 프로젝트를 시작하면 위와 같은 화면이 나온다. 기본적인 움직임 외에는 아무것도 작동하지 않는 간단한 클라이언트 환경이다.
방향키를 이용하여 체스판을 마음대로 움직일 수 있다.
이렇게 원하는 만큼 움직인 후에 스페이스바를 누르면 되돌아가기가 가능하다.
후기
디자인 패턴 중 하나인 명령 패턴을 이용하여 두 번째 프로젝트를 진행해보았다. 사실 되돌리기 기능은 명령어 패턴을 사용하지 않아도 스택 구조를 이용하면 간단하게는 구현이 가능하다. 하지만 유니티 나 언리얼 같이 레벨 에디터를 지원하는 프로그램에 넣기에는 힘들다고 생각하며 이때 이 패턴을 사용하면 좀 더 쉽게 구현이 가능하다고 생각한다.
사실 되돌아가기 뿐 아니라 재실행이 가능해야 하는데 재실행은 스택이 아닌 벡터 컨테이너를 이용하여 index 포인터를 가지고 좌우 이동을 하면 구현이 가능하다고 생각한다. 이렇게 명령 패턴을 이용한 두 가지 프로젝트는 끝이 났고 다음에는 다른 패턴을 이용하여 간단하게 해 볼 생각이다.
* GIF를 처음 넣어보았는데 생각보다 괜찮아서 간단한 프로젝트는 영상 말고 이런 GIF로 대체하는 것도 좋은 거 같다.
출처 및 소스코드 링크
git: https://github.com/SnowFleur/2020-Design-Patterns/tree/master/명령패턴/실행%20및%20되돌리기
Book: goF의 디자인 패턴(프로젝트 미디어), 게임 프로그래밍 패턴(한빛미디어)
관련 글
[프로그래밍/디자인패턴] - [디자인패턴] 디자인 패턴(Design Patterns)의 개요 및 종류
[프로그래밍/디자인패턴] - [디자인패턴] 명령 패턴(Command Patterns)-입력 키 변경
'프로그래밍 > 디자인패턴' 카테고리의 다른 글
[디자인패턴] 컴포넌트 패턴(Component Patterns) (0) | 2020.06.07 |
---|---|
[디자인패턴] 싱글턴 패턴(Singleton Patterns)-이론 (0) | 2020.05.11 |
[디자인패턴] 경량 패턴(Flyweight Patterns)-타일 맵 (0) | 2020.05.02 |
[디자인 패턴] 명령 패턴(Command Patterns)-입력 키 변경 (0) | 2020.04.26 |
[디자인패턴] 디자인 패턴(Design Patterns)의 개요 및 종류 (0) | 2020.04.25 |