객체지향 설계 · 디자인 패턴LESSON 12
Command 패턴: 요청·입력·실행 취소 분리
난이도중급 → 심화
예상 시간65분
선수지식이전 강의
12강. Command 패턴: 요청·입력·실행 취소 분리
1. 이번 강의에서 해결할 문제
버튼 콜백이 직접 저장과 상태를 바꾸면 입력 재매핑, 큐 실행, 되돌리기와 테스트가 어렵습니다.
2. 학습 목표
3. 핵심 개념
Command는 “무엇을 실행할지”를 호출 시점·입력 장치에서 분리합니다. undo는 모든 동작을 자동 역산하지 않으며 실행 전 상태나 보상 명령을 설계해야 합니다.
4. 구현
CompleteTaskCommand.h
class Command { public: virtual ~Command() = default;
virtual void execute() = 0; virtual void undo() = 0; };
class CompleteTaskCommand final : public Command {
TaskService& service_; TaskId id_; std::optional<TaskSnapshot> before_;
public: void execute() override; void undo() override;
};
5. 코드가 동작하는 이유
UI는 Command만 호출하고 명령은 필요한 수신자와 이전 상태를 명시적으로 보관합니다.
6. 자주 하는 실수와 해결법
7. 직접 실습
8. 이해 점검 질문 3개
9. 핵심 요약
MINI QUIZ
0 / 2Command 패턴: 요청·입력·실행 취소 분리 미니 퀴즈
선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.
LESSON STATUS
12강. Command 패턴: 요청·입력·실행 취소 분리 미완료 상태학습을 마쳤나요?
직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.