김영한님 인강듣고/스프링 핵심원리-기본
DIP, OCP 에 위반되는 상황
doriver
2024. 1. 29. 19:04
OrderServiceImpl.java 파일에 아래와 같은 코드상황이 있는경우

DIP 위반
추상( 인터페이스 )에만 의존해야하는데
구체적인 구현 클래스에( FixDiscountPolicy , RateDiscountPolicy )도 의존하는 상황

OCP 위반
FixDiscountPolicy 를 RateDiscountPolicy 로 변경하는 순간 OrderServiceImpl 의 소스코드도 함께 변경해야 한다!
( 기능변경하면 코드에 영향 준다 )
어떻게 해결할수 있을까?

int discountPrice = discountPolicy.discount(member, itemPrice);
위와같이 하면, discountPolicy를 사용하는 상황에서 NullPointerException 과 같은 에러 발생
이 문제를 해결하려면
누군가가 클라이언트인 OrderServiceImpl에
DiscountPolicy의 구현 객체를 대신 생성하고 주입해주어야 한다