만든 할인 정책을 서비스에 적용
관심사의 분리
APPCONFIG의 등장
이런 식으로 OrderServiceImpl 역시 생성자 주입으로 저장소와 할인정책 구현 객체를 넘길 수 있다.
즉 AppConfig는 애플리케이션의 실제 동작에 필요한 구현 객체를 생성하고, 생성한 객체 인스턴스의 참조(레퍼런스)를 생성자를 통해서 주입한다.
이제 객체를 생성하고 연결하는 역할(AppConfig)과 실행(OrderserviceImpl)하는 역할, 즉 관심사가 명확히 분리되었다.
appConfig 객체는 memoryMemberRepository 객체를 생성하고 그 참조값을 memberServiceImpl을 생성하면서 생성자로 전달한다.
클라이언트인 memberServiceImpl 입장에서 보면 의존관계를 마치 외부에서 주입해주는 것 같다고 해서 "DI(Dependency Injection)" 우리말로 의존관계 주입 또는 의존성 주입이라 한다.