본문 바로가기

설계/디자인 패턴

커맨드 패턴

개요

커맨드(COMMAND) 패턴은 디자인 패턴 중 가장 단순한 형태의 디자인 패턴 입니다.

커맨드 패턴은 대체로 인터페이스에 한개의 함수를 가지게 됩니다. 하지만 꼭 한개의 함수를 가지는 것은 아니며 경우에 따라 여러개의 함수로 구성 되기도 합니다.

 


설명

커맨드 패턴을 이용하면 어떤 것이 좋은지에 대해 의아할 수도 있겠지만 이를 활용하면 객체가 동작되기 위해 외부의 변수에 의존되는 현상을 막고 함수 자체를 캡슐화 하여 행위 자체에 집중할 수 있게 만들어 줍니다.

즉 클래스 자체를 커맨드의 함수로 추상화하여 바라 보게 해줄 수 있다는 것 이죠.

이것은 호출하는 대상이 커맨드의 상세 동작에 대해 알지 못하더라도 단지 이벤트에 의해 해당 커맨드를 실행 시키기만 하면 된다는 것을 의미 합니다.

그리고 호출 당하는 쪽에서도 커맨드에 필요한 기능을 구현하는데 집중 할 수 있게 됩니다.

위의 클래스 다이어그램을 보면 Customer 클래스가 Orderer 를 구현했기 때문에 Orderer 커맨드 이기도 하며 Calculator 를 구현했기 때문에 Calculator 커맨드 이기도 합니다.

Customer 는 Orderer 이기도 하면 Calculator 이기도 하다는 이야기 입니다. 이처럼 함수 단위로 추상화를 하면 내부 구현을 들어내지 않고 어떤 클래스 인지 상관없이 행위에 대해 집중할 수 있게 해줄 수 있습니다.

 


정리

  • 커맨드 패턴은 대체로 단일 인터페이스의 단일 함수로 구성 됩니다.
  • 커맨드 패턴은 클래스를 함수 단위로 추상화 하기 위한 패턴 입니다.
  • 커맨드를 호출 하는 쪽은 커맨드를 구현한 클래스가 어떤 클래스인지 상관없이 커맨드의 함수를 호출 할 수 있습니다.

'설계 > 디자인 패턴' 카테고리의 다른 글

모노스테이트 패턴  (0) 2020.08.22
싱글톤 패턴  (0) 2020.08.20
파사드 패턴  (0) 2020.08.20
스트래티지 패턴  (0) 2020.08.18
템플릿 메소드 패턴  (0) 2020.08.18
커맨드 패턴  (0) 2020.08.17