의존성 개수 줄이기

아래는 여러 객체에 의존하는 프로세스이다.

여기서 둘중 하나만 의존하도록 개선 해보자

image.png

이는 도메인의 구조와 유사한 형태로 객체의 구조를 변경하면 된다

여기서 목표는 ReservationService가 DiscountPolicy와 DiscountCondition 둘 중 하나에만 의존하도록 구조를 수정하는 것

  1. 먼저 할인 정책과 할인 조건을 도메인에 표현된 구조에 따라 연결하고 ReservationService가 DiscountPolicy만 참조하도록 구조를 변경하면 의존하는 객체의 수를 줄일 수 있다.

image.png

  1. ReservationService 내부의 DiscountCondition에 대한 의존성을 DiscountPolicy로 이동

이제 ReservationService는 DiscountPolicy가 수정될 때만 영향을 받기 때문에 변경 관점에서 더 안정적인 구조를 만들 수 있다.

image.png

  1. 이제 코드상으로 연관 관계 추가 해보기!

따라서 DIscountPolicy 데이터에도 도메인 구조를 따르도록 DiscountCondtion에 대한 컬렉션을 추가함