DIP 위반 (클라이언트 클래스는 인터페이스에만 의존해야함, 역할과 구현을 철저히 분리)
OrderServiceImpl가 인터페이스인 MemberRepository와 DiscountPolicy에만 의존되있는 거처럼 보이지만
실제론 구현체인 MemoryMemberRepository, RateDiscountPolicy에도 의존하고 있음
* new를 통해 넣어주고 있기 때문
OCP 위반 (확장을 자유롭게 할 수 있어야하지만 변경시 클라이언트 클래스의 로직에 영향이 가면 X)
할인 정책을 바꿀 때 OrderServiceImpl 내에서 코드 변경이 이루어짐
FixDiscountPolicy -> RateDiscountPolicy
'Java > Spring' 카테고리의 다른 글
스프링 컨테이너 (0) | 2021.09.07 |
---|---|
의존성관계 주입 (0) | 2021.09.06 |
단일 책임 원칙 예시 (0) | 2021.08.31 |
좋은 객체 지향 프로그래밍이란? (0) | 2021.08.28 |
객체가 주입 & 객체 지향의 장점 (0) | 2021.08.25 |