본문 바로가기

Design Patterns

Command Pattern ① Command의 개념

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
책에서는 커맨드 패턴에 대해서 설명하기를 마치 음식을 주문하는 것과 같다고 이야기 하는군요.. 뭐 음식을 주문하는 과정을 살펴보면.. 아래와 같겠죠..

1. 손님이 웨이터에게 주문을 합니다.

2. 작성한 주문서를 웨이터는 카운터에 가져다 줍니다.

3. 주방장이 주문서대로 음식을 만듭니다.



그림으로 그려보면 아래와 같습니다. 말로 풀어서 설명을 해보자면.. 손님이 주문을 생성하면 주문서가 작성이 되구요. 작성된 주문서를 종업원이 받아서 주방장에게 전해주면 주방장은 주문서에 있는 대로 음식을 만드는 일을 하는 거죠.. 손님 입장에서는 원하는데로 주문을 요청하고 종업원은 단순히 주방장에게 주문이 들어왔다는 것만 알려주면 되구요.. 주방장은 주문이 들어올때 주문서에 있는 내용 그대로 음식을 만드는 일을 하면 됩니다.

사용자 삽입 이미지

이렇게 무언가를 요구하는 객체와 그 요구를 받아들이고 처리하는 객체를 분리시키는 것이 객체지향 디자인 패턴의 한 모델이라고 볼 수 있다고 하네요. 위의 그림에서는 요구하는 객체는 손님이 되고.. 받아들이는 객체들은 주문서와 종업원, 그리고 처리하는 객체는 주방장이 되겠군요 +_+ ㅋㅋ
앞선 디자인 패턴들을 살펴보면, 대체로 클래스의 독립성을 굉장히 강조하고 있고.. 어디에도 의존하지 않게 하는게 최적이라고 이야기를 하고 있습니다.요구와 처리의 분리... 라고 하니까 이전에 인터페이스와 추상클래스 설명을 하면서 뭐.. 인터페이스가 존재하는 이유는 선언과 구현의 분리다.. 뭐 이런 얘기가 있었는데 -ㅅ-;; 암튼 여담이구요.. 커맨드 패턴은 요구와 요구처리 객체를 분리 시키는것이라는 군요 +_+