AppConfig 의 등장으로 애플리케이션이 크게 사용 영역과 객체를 생성하고 구성 (Configuration) 하는 영역으로 분리되었다.

할인 정책을 변경하게 되면 AppConfig 코트만 고치면 된다. 구성 영역의 코드만 고치면 되고 사용 영역의 코드는 전혀 손댈 필요가 없다.

이전에는 클라이언트 코드인 OrderServiceImpl 이 영향을 받았지만, OrderServiceImpl 을 포함한 사용 영역의 어떠한 코드도 변경할 필요가 없다.

image.png

구성 영역은 당연히 변경이 된다. 구성영역은 객체 생성화에 대한 구체적인 것에 대해 잘 아는 책임을 다 가져간다. 따라서 구성영역 역할을 담당하는 AppConfig 를 애플리케이션의 공연기획자라고 생각하자. 공연 기획자는 공연 참여자인 구현 객체를 모두 알아야 한다.

이렇게 되면 DIP, OCP 모두 지켜진 것. 확장에는 열려있고 변경에는 닫혀있다.