Java/Spring

단일 책임 원칙 예시

필리힐리 2021. 8. 31. 00:04

 

VIP는 무조건 1000원을 할인 해주는 정액 할인 정책 FixDiscountPolicy 객체가 DiscountPolicy 인터페이스에 끼워져있다.

 

 

여기서 OrderServiceImpl 입장에선 할인에 대해 전혀 몰라도 됨

할인 정책에 대해선 DiscountPolicy가 알아서 자율적으로 동작

 

만약 DiscountPolicy가 없다면 할인 정책에 대한 변경이 들어왔을 때 OrderServiceImpl의 로직을 변경해야함

 

OrderServiceImpl는 주문을 생성하는 하나의 책임, DiscountPolicy는 할인 가격을 알려주는 하나의 책임만 있기 때문에

단일 책임 원칙을 잘 지킨 코드이다.