[Spring 핵심원리 기본편] 객체 지향 원리 적용 (->스프링 컨테이너)
mini_min
새로운 할인 정책이 개발되어야할 때 발생하는 문제를 막는다. 이를 위해 관심사를 분리해보자. 새로운 정책 개발 새로운 할인 정책이 개발 되었다. 할인 정책을 변경하려면, 클라이언트인 OrderServiceImpl 을 변경해야한다. 문제점 역할 구현을 충실히 분리했는가? o 다형성도 활용하고 인터페이스와 구현체를 분리했는가? o OCP, DIP 와 같은 객체 지향 원칙을 준수했는가? x = 클래스 의존관계를 분석해보면, 추상 뿐만 아니라 구체 클래스에도 의존하고 있다. 인터페이스 뿐만 아니라, 구체 클래스에도 함께 의존하고 있다. 추상에만 의존해야 하는데, 구체에도 의존하고 있다. 즉, DIP 를 위반하고 있다. FixDiscount 를 RateDiscount 로 바꾸는 순간, 클라이언트 OrderServ..