Java/Spring

OCP, DIP 위반

필리힐리 2021. 9. 3. 23:25

 

DIP 위반 (클라이언트 클래스는 인터페이스에만 의존해야함, 역할과 구현을 철저히 분리)

OrderServiceImpl가 인터페이스인 MemberRepository와 DiscountPolicy에만 의존되있는 거처럼 보이지만

실제론 구현체인 MemoryMemberRepository, RateDiscountPolicy에도 의존하고 있음

* new를 통해 넣어주고 있기 때문

 

OCP 위반 (확장을 자유롭게 할 수 있어야하지만 변경시 클라이언트 클래스의 로직에 영향이 가면 X)

할인 정책을 바꿀 때 OrderServiceImpl 내에서 코드 변경이 이루어짐

FixDiscountPolicy -> RateDiscountPolicy

 

 

 

 

'Java > Spring' 카테고리의 다른 글

스프링 컨테이너  (0) 2021.09.07
의존성관계 주입  (0) 2021.09.06
단일 책임 원칙 예시  (0) 2021.08.31
좋은 객체 지향 프로그래밍이란?  (0) 2021.08.28
객체가 주입 & 객체 지향의 장점  (0) 2021.08.25