Strategy Pattern 런타임 교체 구조

결제 흐름은 유지하고 PaymentStrategy 구현만 바꾸면 분기문 없이 결제 알고리즘을 교체할 수 있습니다.

Context

ShoppingCart

장바구니가 결제 흐름을 소유하고 구체 결제 방식은 알지 않습니다.

계약

PaymentStrategy

pay(amount)라는 공통 호출 규칙으로 모든 결제 구현을 묶습니다.

구현 A

CardStrategy

카드 승인과 결제 세부 절차를 독립된 전략으로 캡슐화합니다.

구현 B

PayPalStrategy

같은 계약으로 다른 결제 알고리즘을 제공해 호출부 분기를 없앱니다.

교체

setStrategy

실행 시점에 사용할 전략을 갈아 끼워 같은 장바구니 흐름을 재사용합니다.

핵심전략 패턴은 바뀌는 행동을 타입 계약 뒤에 숨겨 컨텍스트와 구현의 결합을 낮춥니다.