
이 글은 김영한 님의 스프링 핵심 원리 - 기본편(https://www.inflearn.com/스프링-핵심-원리-기본편/dashboard)을 수강하며 학습한 내용을 정리한 글입니다. 모든 출처는 해당 강의에 있습니다.
주문과 할인 정책 요구사항
주문 도메인 협력, 역할, 책임
💡 실제로는 주문 데이터를 DB에 저장해야 하나, 예제이므로 주문 결과만 반환한다.
주문 도메인 전체
주문 도메인 클래스 다이어그램
주문 도메인 객체 다이어그램
: 협력 관계를 그대로 재사용 가능하다.
할인 정책
src/main/java/hello/core에 discount 패키지 생성
할인 정책 인터페이스
discount 패키지에 DiscountPolicy 인터페이스 생성DiscountPolicy.java
정액 할인 정책 구현체
discount 패키지에 FixDiscountPolicy 클래스 생성DiscountPolicy를 implements → 인터페이스 메소드 오버라이딩 및 할인 금액 필드 선언FixDiscountPolicy.java
주문 정책
src/main/java/hello/core에 order 패키지 생성
주문 엔티티
order 패키지에 Order 클래스 생성
calculatePrice()) 생성
toString() 오버로딩
주문 서비스 인터페이스
order 패키지에 OrderService 인터페이스 생성OrderService.java주문 서비스 구현체
order 패키지에 OrderServiceImpl 클래스 생성OrderService를 implements → 인터페이스 메소드 구현OrderServiceImpl.java
실행
hello.core 패키지에 OrderApp 생성OrderApp.java 코드 작성 후 실행

💡 애플리케이션 로직으로 테스트 하는 것은 좋은 방법이 아니므로 JUnit 테스트를 사용하도록 한다.
테스트
/src/test/java/hello/core에 order 패키지 생성 → order 패키지에 OrderServiceTest 생성

src/test/java 마우스 버튼 오른쪽 클릭 → Run 'All Tests' 클릭
