VIP는 무조건 1000원을 할인 해주는 정액 할인 정책 FixDiscountPolicy 객체가 DiscountPolicy 인터페이스에 끼워져있다.
여기서 OrderServiceImpl 입장에선 할인에 대해 전혀 몰라도 됨
할인 정책에 대해선 DiscountPolicy가 알아서 자율적으로 동작
만약 DiscountPolicy가 없다면 할인 정책에 대한 변경이 들어왔을 때 OrderServiceImpl의 로직을 변경해야함
OrderServiceImpl는 주문을 생성하는 하나의 책임, DiscountPolicy는 할인 가격을 알려주는 하나의 책임만 있기 때문에
단일 책임 원칙을 잘 지킨 코드이다.
'Java > Spring' 카테고리의 다른 글
의존성관계 주입 (0) | 2021.09.06 |
---|---|
OCP, DIP 위반 (0) | 2021.09.03 |
좋은 객체 지향 프로그래밍이란? (0) | 2021.08.28 |
객체가 주입 & 객체 지향의 장점 (0) | 2021.08.25 |
자바 코드로 스프링 bean 직접 등록 (0) | 2021.08.23 |