상속보다 조합을 선택하기 예제가 실행되는 순서
역할 인터페이스 정의에서 시작해 공개 동작이 내부 전략에 위임까지 값과 책임이 이동한다.
-
1
역할 인터페이스 정의
모든 하위 객체가 상위 타입의 의미를 지켜야 합니다.
-
2
필드로 구현 객체 조합
내부 객체가 가진 많은 메서드 가운데 현재 클래스의 책임에 맞는 것만 위임합니다.
-
3
공개 동작이 내부 전략에 위임
계산 방식이나 출력 방식처럼 자주 바뀌는 동작을 인터페이스 필드로 받으면 클래스 계층을 늘리지 않고 교체할 수 있습니다.
실행 순서 Checkout 코드는 바꾸지 않고 생성자에 전달한 Discount 전략만 교체했습니다.