주문과 할인 정책

주문 도메인 설계

먼저 클라이언트는 주문 생성을 할 수 있습니다.

주문 서비스는 주문 생성의 역할을 합니다.

어떻게 하냐면 먼저 회원 등급이 필요해서 회원 저장소에서 회원을 조회해서 회원의 등급을 가지고 할인을 적용할 수 있는 할인 정책 역할에 물어봅니다.

그래서 할인을 적용할 수 있다면 할인을 해서 그 결과를 주문 서비스에 보내주고 주문 서비스는 최종적으로 할인까지 적용된 최종 결과를 클라이언트에게 반환합니다.

Untitled

  1. 주문 생성: 클라이언트는 주문 서비스에 주문 생성을 요청한다.

    클라이언트가 주문에 필요한 데이터를 가지고 요청을 합니다.

    여기서 클라이언트는 예를 들어 main 같은 코드입니다.

    id, 상품명, 상품 가격을 넘깁니다.

    상품 데이터가 아니라 상품명, 상품 가격을 넘기는 이유는 예제를 간단히 하기 위함입니다. 실무에서는 상품에 대한 객체가 존재 해야합니다.

  2. 회원 조회: 할인을 위해서는 회원 등급이 필요하다. 그래서 주문 서비스는 회원 저장소에서 회원을 조회한다.

  3. 할인 적용: 주문 서비스는 회원 등급에 따른 할인 여부를 할인 정책에 위임한다.

  4. 주문 결과 반환: 주문 서비스는 할인 결과를 포함한 주문 결과를 반환한다.

참고: 실제로는 주문 데이터를 DB에 저장하겠지만, 예제가 너무 복잡해 질 수 있어서 생략하고, 단순히 주문 결과를 반환합니다.