이 글은 김영한 님의 스프링 핵심 원리 - 기본편(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'
클릭