Java/Spring
OCP, DIP 위반
필리힐리
2021. 9. 3. 23:25

DIP 위반 (클라이언트 클래스는 인터페이스에만 의존해야함, 역할과 구현을 철저히 분리)
OrderServiceImpl가 인터페이스인 MemberRepository와 DiscountPolicy에만 의존되있는 거처럼 보이지만
실제론 구현체인 MemoryMemberRepository, RateDiscountPolicy에도 의존하고 있음
* new를 통해 넣어주고 있기 때문
OCP 위반 (확장을 자유롭게 할 수 있어야하지만 변경시 클라이언트 클래스의 로직에 영향이 가면 X)
할인 정책을 바꿀 때 OrderServiceImpl 내에서 코드 변경이 이루어짐
FixDiscountPolicy -> RateDiscountPolicy