김영한님 인강듣고/스프링 핵심원리-기본

사용영역( ServiceImpl )과 구성영역( AppConfig )으로 분리

doriver 2024. 2. 1. 12:00

ServiceImpl 가 구체적 객체까지 생성해서 할당하는 상황에서

 

AppConfig 를 새로 만들어서 

구현객체를 생성하고 연결하는 역할과( AppConfig ) 실행하는 역할의( ServiceImpl )으로 분리

 

SRP , 한 클래스는 하나의 책임만 가져야한다

클라이언트 객체가 너무 많은 역할을 가지고 있었음
> 구현 객체 생성하고 연결하는 책임은 AppConfig가 담당 , 클라이언트 객체는 실행하는 책임만 담당


DIP , 추상화에 의존해야지, 구체화에 의존하면 안된다
추상화( 인터페이스 )에 의존하도록 하고 + AppConfig로 객체 인스턴스를 생성하고 의존관계 주입 해줌

 
OCP , 
AppConfig가 의존관계를 FixDiscountPolicy > RateDiscountPolicy 로 변경해서 클라이언트 코드
에 주입하므로 클라이언트 코드는 변경하지 않아도 됨
소프트웨어 요소를 새롭게 확장해도 사용 영역의 변경은 닫혀 있다