본문 바로가기
지식/디자인패턴

Head First Design Patterns : Command Pattern

by CodeRain 2024. 1. 14.

Command Pattern

  • 요청을 객체의 형태로 캡슐화하여 사용자가 보낸 요청을 나중에 이용할 수 있도록 매서드 이름, 매개변수 등 요청에 필요한 정보를 저장 또는 로깅, 취소할 수 있게 하는 패턴

 

구조

  • Invoker
    • Command 객체 존재.
    • Command 객체 안에 있는 execute 메소드 호출 하여 Command 동작 시킴
  • Command
    • 모든 Command 객체 에서 구현해야 하는 인터페이스
    • 일반적으로 커맨드를 실행하기 위한 단일 메서드로 이루어짐.
  • ConcreteCommand
    • Receiver에 있는 메소드를 호출해 작업 수행 하게 함.
    • Receiver에 있는 메서드를 실행하는 데 필요한 매개 변수들은 구상 커맨드의 필드들로 선언할 수 있음.
  • Receiver
    • 비즈니스 로직이 들어 있는 객체
    • 실제 작업을 수행.

 

장점

  • 단일책임의원칙 준수
  • 개방/폐쇄 원칙 준수
  • 실행/취소 구현 가능
  • 지연 실행 가능

 

단점

  • 복잡성 증가

 

참고