명령 패턴(Command Patterns)란
명령 패턴: 요청 자체를 캡슐화 하는 것입니다. 이를 통해 요청이 서로 다른 사용자(클라이언트)를 매개변수로 만들고 요청을
대기 시키거나 로깅하며, 되돌릴 수 있는 연산을 지원합니다. (goF의 디자인패턴)
이러한 문장을 매우 간결하게 요약하면 "명령 패턴은 메서드 호출을 실체화 한 것이다."
실체화는 어떤 개념을 변수에 저장하거나 함수에 전달할 수 있도록 데이터, 즉 객체로 바꿀 수 있다는 걸 의미한다.
"메서드 호출을 실체화한 것" 아라고 한 것은 함수 호출을 객체로 감쌌다는 의미이며 명령 패턴은 콜백을 객체지향적
으로 표현한 것 이라 한다. (게임 프로그래밍 패턴)
프로젝트 정보(Project Informaion)
사진 및 프로젝트 설명
처음 프로젝트를 실행하면 나오는 화면이다 왼쪽 화면은 해당 키에 매핑된 커맨드 정보를 오른쪽은 간단한 그래픽 환경을 지원한다. 해당 프로젝트에서 Fire, Jump, Crouch, Run의 구현이 목적이 아니기 때문에 간단하게 출력으로 진행했다.
해당 W, A, S, D 키를 입력하면 해당 키에 매핑된 Fire, Jump, Crouch, Run 커맨드가 무엇인지 나오며 키 변경 메뉴 창에서 해당 키에 해당하는 커맨드를 변경 및 적용이 가능하다.( 마우스를 이용하기보다는 키보드를 이용해서 선택이 빠르다.)
키를 위 사진처럼 변경을 하면 왼쪽에 키가 바뀌었다는 글이 출력되며 다시 W, A, S, D, 키를 눌렀을 때 바뀐 커맨드를 확인할 수 있다.
후기
디자인 패턴 중 하나인 명령 패턴을 직접 구현하고 간단하게 적용을 해보았다. 클라이언트는 예전에 만들었던 체스 클라의 처음 버전 인대 다른 사람이 작성한 프레임워크 위에 올릴까 하다가 직접 깃에 올리기도 해야 하니 예전에 작성한 프로젝트 위에 올렸다. 앞으로 도 여러 패턴을 적용이 가능하면 가능한 한도에서 직접 적용해볼 예정이다.
출처 및 소스코드 링크
git: https://github.com/SnowFleur/2020-Design-Patterns/tree/master/명령패턴/키%20입력
Book: goF의 디자인 패턴(프로젝트 미디어), 게임 프로그래밍 패턴(한빛미디어)
관련 글
[프로그래밍/디자인패턴] - [디자인패턴] 디자인 패턴(Design Patterns)의 개요 및 종류
'프로그래밍 > 디자인패턴' 카테고리의 다른 글
[디자인패턴] 컴포넌트 패턴(Component Patterns) (0) | 2020.06.07 |
---|---|
[디자인패턴] 싱글턴 패턴(Singleton Patterns)-이론 (0) | 2020.05.11 |
[디자인패턴] 경량 패턴(Flyweight Patterns)-타일 맵 (0) | 2020.05.02 |
[디자인패턴] 명령 패턴(Command Patterns)-실행 및 되돌리기 (0) | 2020.04.27 |
[디자인패턴] 디자인 패턴(Design Patterns)의 개요 및 종류 (0) | 2020.04.25 |