새로운 할인 정책 적용과 문제점
스프링 기본 - 전체 흐름 정리
스프링 기본 - 전체 흐름 정리
2022.05.26전체 흐름 정리 지금까지의 흐름을 정리해보자. 새로운 할인 정책 개발 새로운 할인 정책 적용과 문제점 관심사의 분리 AppConfig 리팩터링 새로운 구조와 할인 정책 적용 새로운 할인 정책 개발 다형성 덕분에 새로운 정률 할인 정책 코드를 추가로 개발하는 것 자체는 아무 문제가 없음 새로운 할인 정책 적용과 문제점 새로 개발한 정률 할인 정책을 적용하려고 하니 클라이언트 코드인 주문 서비스 구현체도 함께 변경해야함. 주문 서비스 클라이언트가 인터페이스인 DiscountPolicy뿐만 아니라, 구체 클래스인 FixDiscountPolicy도 함께 의존 → DIP 위반 관심사의 분리 애플리케이션을 하나의 공연으로 생각 기존에는 클라이언트가 의존하는 서버 구현 객체를 직접 생성하고, 실행함 비유를 하면 기존..
스프링 기본 - 새로운 할인 정책 적용과 문제점
스프링 기본 - 새로운 할인 정책 적용과 문제점
2022.05.25새로운 할인 정책 적용과 문제점 이전 시간에 추가한 할인 정책을 적용해보자. 할인 정책을 애플리케이션에 적용해보자. 할인 정책을 변경하려면 할인정책의 클라이언트인 OrderServiceImpl 코드를 고쳐야 한다. 문제점 발견 우리는 역할과 구현을 충실하게 분리했다. → OK 다형성도 활용하고, 인터페이스 구현 객체를 분리했다. → OK OCP, DIP 같은 객체지향 설계 원칙을 충실히 준수했다 → 그렇게 보이지만 사실은 아니다. DIP : 주문서비스 클라이언트 OrderServiceImpl는 DiscountPolicy인터페이스에 의존하면서 DIP를 잘 지킨 것 같은데? → 클래스 의존관계를 분석해보자. 추상(인터페이스)뿐만 아니라 구체(구현)클래스에도 의존하고 있다. 추상(인터페이스) 의존 : Disc..