Closed solpinetree closed 2 years ago
AppConfig
의 등장으로 애플리케이션이 크게 사용 영역
, 객체를 생성하고 구성하는 영역
으로 분리.
좋은 객체 지향 설계의 5가지 원칙 중 여기서는 3가지 SRP
, DIP
, OCP
적용이 되어있다.
SRP
단일 책임 원칙
한 클래스는 하나의 책임만 가져야 한다.
AppConfig
가 담당DIP
의존관계 역전 원칙
추상화에 의존해야지, 구체화에 의존하면 안된다.
DiscountPolicy
추상화 인터페이스에 의존한다.AppConfig
가 FixDiscountPolicy
객체 인스턴스를 클라이언트 코드 대신 생성해서 클라이언트 코드에 의존관계를 주입한다. OCP
소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다.
사용 영역
과 구성 영역
으로 나눴다.사용 영역
의 변경은 닫혀 있다. OrderServiceImpl
이 아닌 OrderService 인터페이스의 다른 구현 객체를 생성하고 실행할 수도 있음.두 가지 종류이 의존 관계가 있다.
DI 컨테이너
라 한다.