본문으로 건너뛰기
객체지향 설계 · 디자인 패턴LESSON 11

Strategy 패턴: 규칙을 교체 가능하게 만들기

난이도중급 → 심화
예상 시간65분
선수지식이전 강의

11강. Strategy 패턴: 규칙을 교체 가능하게 만들기

1. 이번 강의에서 해결할 문제​

할인 유형 switch가 주문 서비스에 있으면 정책 추가와 서비스 테스트가 함께 변합니다.

2. 학습 목표​

3. 핵심 개념​

Strategy는 같은 목표를 계산하는 알고리즘을 교체합니다. 수명·상태가 필요한 정책은 객체, 작은 계산은 std::function이나 템플릿 매개변수가 단순할 수 있습니다.

4. 구현​

PricingService.h
class DiscountPolicy { public: virtual ~DiscountPolicy() = default;
virtual Money discount(const Order&) const = 0; };
Money PricingService::total(const Order& order) const {
return order.subtotal() - policy_.discount(order);
}

5. 코드가 동작하는 이유​

PricingService 흐름은 고정되고 정책 테스트는 주문 입력과 할인 출력만 확인합니다.

6. 자주 하는 실수와 해결법​

7. 직접 실습​

8. 이해 점검 질문 3개​

9. 핵심 요약​

MINI QUIZ

Strategy 패턴: 규칙을 교체 가능하게 만들기 미니 퀴즈

선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.

0 / 2
  1. 문제 1“Strategy 패턴: 규칙을 교체 가능하게 만들기” 코드 리뷰에서 동작 원리와 일치하는 설명은 무엇인가요?
  2. 문제 2‘State와 혼동’ 실수를 판단할 때 “Strategy 패턴: 규칙을 교체 가능하게 만들기” 강의가 제시한 기준은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.

11강. Strategy 패턴: 규칙을 교체 가능하게 만들기 미완료 상태