TS · PATTERN

Strategy Pattern 런타임 교체 구조

전략 패턴은 바뀌는 알고리즘을 인터페이스 뒤로 숨기고, 컨텍스트가 구체 클래스가 아니라 공통 계약에만 의존하게 만듭니다.

결제 전략 구조

strategy
ContextShoppingCart가 결제 흐름을 소유합니다.
Strategy interfacepay(amount) 같은 공통 메서드를 정의합니다.
CardStrategy카드 결제 세부 구현을 캡슐화합니다.
PayPalStrategy다른 결제 알고리즘을 같은 pay() 계약 뒤에 숨겨 호출부 분기를 줄입니다.
setStrategy실행 시점에 사용할 전략을 바꿉니다.
contextinterfacestrategy Astrategy Bexecute

효과

oop
분기 제거결제 타입마다 if를 늘리는 대신 전략 클래스로 분리합니다.
확장 용이새 결제 수단은 인터페이스 구현으로 추가합니다.
테스트전략별 테스트와 컨텍스트 테스트를 나눌 수 있습니다.
주의전략이 너무 단순하면 클래스 수만 늘어날 수 있습니다.