https://salmon16.tistory.com/75 OCP, DIP 원칙이 위배되는 역할과 구현 분리 역할과 구현을 분리하고 다형성을 이용하여 잘 설계를 해도 OCP, DIP 원칙을 위반할 수 있다 . 아래 예시를 보자 OrderServiceImpl은 DiscountPolicy라는 인터페이스에 의존하면서 DIP를 잘 지킨 것 같지만 salmon16.tistory.com 위 링크 문제를 해결하기 위해 구현 객체를 생성하고 연결하는 AppConfig클래스를 만들자. Appconfig는 구현 객체를 생성하여 return 해 준다. 이렇게 작성을 하고 각 Impl클래스의 생성자를 추가하면 OCP, DIP를 위배하지 않게 만들 수 있다. 예로 MemberServiceImpl 코드를 보면 더 이상 구현에 의존..