본문 바로가기
백엔드개발자/SPRING, JPA 등...

정률할인과 테스트 / 할인정책 바꾸기

by 보혀니 2022. 1. 3.

 

Junit5 부터는 DisplayName에 한글을 사용할 수 있따

 

 

 

 

바뀐 할인 정책을 사용해보쟈

 

 

문제점 ?????

1. 역할과 구현을 충실하게 분리했다. =>  OK

2. 다형성을 활용하고, 인터페이스와 구현 객체를 분리했다. => OK

3. OCP, DIP 같은 객체지향 설계 원칙을 충실히 준수했다 => ....................?????

 

 DIP: 주문서비스 클라이언트 OrderSercviceImpl는 DiscountPolicy인퍼테이스에 의존을 하며

DIP를 지킨것 같지만....

클래스 의존관계를 분석해보면 인터페이스 뿐만 아니라, 구현클래스에도 의존하고 있다....

 

 OCP: 확장에는 열려있으나 변경에는 닫혀있어야 하는데.. 정책을 변경하는 순간

OrderServiceImpl.. 클라이언트 코드를 변경했음 . 따라서 OCP를 위반한다고...

 

 

 

그렇다면 어떻게 이 문제를 해결할 수 있을까!?!?!?!?!??!?!!!

 

 인터페이스에만 의존하도록 코드를 변경해보았지만

이제는 널포인트가 뜨는 .... 쥬르릌 쥬르릌

구체화된 객체가 없는데 어캐 해결을 해야할까요

 

어떻게 이 문제를 해결할 수 있을까!?!?!?!?!??!?!!! 22222222222222222222222