JAVA

JAVA 디자인 패턴 - 커맨드(Command) 패턴

TECH 톡마스터 2023. 7. 14.

JAVA 디자인 패턴 - 커맨드(Command) 패턴
JAVA 디자인 패턴 - 커맨드(Command) 패턴

 

안녕하세요. 오늘 알아볼 JAVA 디자인 패턴은 커맨드(Command) 패턴입니다.

1. 커맨드(Command) 패턴 이란?

커맨드 패턴은 요청을 객체로 캡슐화하여 메서드 호출에 의한 연동을 개선하고, 호출 정보를 만들고 저장하는 행동 패턴입니다. 이 패턴은 객체와 그 객체에서 수행되는 동작을 분리하므로, 동작을 하나의 객체로 설정한 다음 해당 객체를 다른 객체에 전달할 수 있습니다. 이를 통해 연산을 요청하는 객체와 연산을 실행하는 객체 간의 의존성이 최소화됩니다.

2. 커맨드(Command) 패턴 구현 방법

커맨드 패턴을 구현하려면 다음 요소들이 필요합니다:

  1. Command 인터페이스: 모든 커맨드 객체를 위한 공통 인터페이스로, 일반적으로 `execute()` 메서드를 포함합니다.
  2. ConcreteCommand 클래스: Command 인터페이스를 구현하는 구체적인 커맨드 객체로, 실행할 행동을 캡슐화합니다. 이 클래스는 일반적으로 Receiver 객체를 참조하며, `execute()` 메서드에서 이 Receiver 객체에 작업을 위임합니다.
  3. Receiver 클래스: 작업을 수행하는 실제 객체입니다.
  4. Invoker 클래스: Command 객체를 사용하여 요청을 수행하는 호출자 객체입니다.

3. 커맨드(Command) 패턴의 장단점

3.1. 장점

  • 메서드 호출을 캡슐화하여, 호출 정보를 저장, 전달 및 조작할 수 있습니다.
  • 다양한 동작을 쉽게 추가, 관리하거나 교체할 수 있습니다.
  • 높은 응집력과 낮은 결합도로 코드가 유연하고 확장 가능합니다.
  • 요청을 통한 동작 실행에 대한 로깅, 트랜잭션, 명령 취소(undo) 등에 적용할 수 있습니다.

3.1. 단점

  • 각 명령에 대해 별도의 클래스가 필요하므로, 코드가 복잡해질 수 있습니다.

4. 커맨드(Command) 패턴의 활용 예

커맨드 패턴은 다양한 상황에서 사용할 수 있습니다.

  • 실행 취소(undo) 및 재수행(redo)을 지원하는 에디터
  • 명령 목록, 큐, 또는 스택을 사용하여 요청을 순차적으로 저장 및 처리 (예: 작업 스케줄러)
  • 복잡한 명령 조합을 만들기 위해 기존 명령을 조립하는 경우 (매크로 명령)
  • 웹 서비스, REST API 요청을 통한 공통 인터페이스 처리 (요청 커맨드 객체 사용)

2023.07.12 - [JAVA] - 디자인패턴 - 팩토리(Factory) 패턴

 

디자인패턴 - 팩토리(Factory) 패턴

2023.07.12 - [JAVA] - 디자인패턴 - 싱글톤(Singleton) 패턴 [ 목차 ] 안녕하세요. 이번에는 팩토리(Factory) 패턴에 대해서 알아보도록 하겠습니다. 1. 팩토리(Factory) 패턴 이란? 팩토리 패턴은 객체 생성을

tech.dj-tiger.com

2023.07.12 - [JAVA] - 디자인패턴 - 팩토리(Factory) 패턴

 

디자인패턴 - 팩토리(Factory) 패턴

2023.07.12 - [JAVA] - 디자인패턴 - 싱글톤(Singleton) 패턴 [ 목차 ] 안녕하세요. 이번에는 팩토리(Factory) 패턴에 대해서 알아보도록 하겠습니다. 1. 팩토리(Factory) 패턴 이란? 팩토리 패턴은 객체 생성을

tech.dj-tiger.com

2023.07.12 - [JAVA] - 디자인패턴 - 어댑터(Adapter) 패턴

 

디자인패턴 - 어댑터(Adapter) 패턴

[ 목차 ] 안녕하세요. 오늘 알아볼 패턴은 어댑터(Adapter) 패턴입니다. 1. 어댑터(Adapter) 패턴 이란? 어댑터 패턴은 디자인 패턴 중 하나로, 서로 다른 인터페이스를 가진 클래스 또는 객체를 협력할

tech.dj-tiger.com

 

2023.07.12 - [JAVA] - JAVA 디자인패턴 - 싱글톤(Singleton) 패턴

 

디자인패턴 - 싱글톤(Singleton) 패턴

2023.07.12 - [JAVA] - 디자인패턴 - 팩토리(Factory) 패턴 [ 목차 ] 안녕하세요. 자바에는 다양한 디자인 패턴이 존재하고, 각 패턴은 특정한 문제를 해결하기 위해 설계되었습니다. 적절한 디자인 패턴

tech.dj-tiger.com

2023.07.13 - [JAVA] - JAVA 디자인패턴 - 옵저버(Observer) 패턴

 

JAVA 디자인패턴 - 옵저버(Observer) 패턴

[ 목차 ] 안녕하세요. 이번에는 Java 디자인패턴 중 옵저버(Observer) 패턴에 대해서 알아보겠습니다. 1. 옵저버(Observer) 패턴이란? 옵저버 패턴은 디자인 패턴 중 하나로, 한 객체의 상태가 변화하면

tech.dj-tiger.com

 

2023.07.13 - [JAVA] - JAVA 디자인패턴 - 데코레이터(Decorator) 패턴

2023.07.14 - [JAVA] - JAVA 디자인패턴 - 프록시(Proxy) 패턴

댓글

💲 추천 글