목적
- 행위를 객체가 가짐으로써 중복되는 코드를 제거할수 있음 (보일러플레이트 제거)
- 변경에 유연한 소프트웨어를 개발할 수 있음
주문 서비스를 개발해야합니다.
요구사항
1. 주문 생성
- 사용자는 상품을 장바구니에 담고 주문을 생성할 수 있어야 한다.
- 주문이 생성되면 상태는 “주문 생성됨(CREATED)”으로 시작한다.
2. 결제
- 사용자는 주문을 결제할 수 있어야 한다.
- 결제가 완료되면 주문 상태는 “결제 완료(PAID)”로 바뀐다.
- 결제 이전에는 배송이나 완료 처리가 허용되지 않는다.
3. 배송
- 결제가 완료된 주문은 배송 요청이 가능하다.
- 배송이 시작되면 주문 상태는 “배송 중(SHIPPED)”으로 바뀐다.
- 결제되지 않은 주문은 배송을 요청할 수 없다.
4. 주문 취소
- 사용자는 결제 전 단계에서만 주문을 취소할 수 있다.
- 취소된 주문은 더 이상 결제나 배송으로 진행되지 않는다.