디자인 패턴 [커맨드 패턴] Command Pattern 개념 예제
Command Pattern이란?
▶ 요구사항(요청, 명령)을 객체로 캡슐화시킵니다. 이를 이용해서 다른 요구사항을 지닌 클라이언트를 매개변수화 시킬 수 있습니다. 말 그대로 리모콘처럼 여러 가지의 명령어를 부여하여 그것을 호출하는 것입니다.
코드 요약
▶ People 객체는 Command 인터페이스의 List를 가지고 있고 List에는 Calculator의 각각의 기능이 있습니다. List의 인덱스를 호출하여 각각 다른 계산을 이용할 수 있습니다.
클래스 다이어그램

1. AddCalculator class
public class AddCalculator implements Commend{ @Override public double execute(double n1, double n2) { return n1+n2; } }
2. MinusCalculator class
public class MinusCalculator implements Commend{ @Override public double execute(double n1, double n2) { return n1-n2; } }
3. Commend interface
public interface Commend { double execute(double n1, double n2); }
4. People class
import java.util.ArrayList; import java.util.List; public class People { List<Commend> commendList = new ArrayList<>(); public void addCommend(Commend commend) { commendList.add(commend); } public double execute(int index, double n1, double n2){ return commendList.get(index).execute(n1,n2); } }
5. Main class
public class Main { public static void main(String[] args) { MinusCalculator minusCalculator = new MinusCalculator(); AddCalculator addCalculator = new AddCalculator(); People people = new People(); // 0 번째 index 에 minus 계산기 명령어를 수행하는 객체 추가 people.addCommend(minusCalculator); // 1 번째 index 에 add 계산기 명령어를 수행하는 객체 추가 people.addCommend(addCalculator); // minus 계산기 사용 double result1 = people.execute(0, 1, 2); // add 계산기 사용 double result2 = people.execute(1, 1, 2); System.out.println(result1); System.out.println(result2); } }
이처럼 각각의 명령에 따라 다른 역할을 수행하도록 하는 것이 Command Pattern입니다. 읽어주셔서 감사합니다.
전체 코드는 아래에서 확인 가능합니다:)
https://github.com/rlaehdals/design-pattern
GitHub - rlaehdals/design-pattern
Contribute to rlaehdals/design-pattern development by creating an account on GitHub.
github.com
'Desing Pattern' 카테고리의 다른 글
디자인 패턴 [템플릿 패턴] Template Pattern 개념 예제 (0) | 2022.01.03 |
---|---|
디자인 패턴 [스테이트 패턴] State Pattern 개념 예제 (0) | 2022.01.03 |
디자인 패턴 [퍼사드 패턴] Facade Pattern 개념 예제 (0) | 2022.01.03 |
디자인 패턴 [어댑터 패턴] Adapter Pattern 개념 예제 (0) | 2022.01.03 |
디자인 패턴 DAO Pattern 개념과 예제 (0) | 2022.01.01 |
댓글
이 글 공유하기
다른 글
-
디자인 패턴 [템플릿 패턴] Template Pattern 개념 예제
디자인 패턴 [템플릿 패턴] Template Pattern 개념 예제
2022.01.03 -
디자인 패턴 [스테이트 패턴] State Pattern 개념 예제
디자인 패턴 [스테이트 패턴] State Pattern 개념 예제
2022.01.03 -
디자인 패턴 [퍼사드 패턴] Facade Pattern 개념 예제
디자인 패턴 [퍼사드 패턴] Facade Pattern 개념 예제
2022.01.03 -
디자인 패턴 [어댑터 패턴] Adapter Pattern 개념 예제
디자인 패턴 [어댑터 패턴] Adapter Pattern 개념 예제
2022.01.03
댓글을 사용할 수 없습니다.