-
주문과 할인 도메인 설계spring/스프링 핵심 원리 강의 내용 정리 2023. 12. 6. 15:22
-다이어그램 설명-
->클라이언트는 주문 생성 기능을 사용할 수 있다
- 회원id
- 상품명
- 상품 가격
-> 주문 서비스 역할 : 회원 조회, 할인 적용을 하기 위해 각각의 인터페이스들을 사용하고, 클라이언트에게 결과 반환
-> 회원 저장소 역할, 할인 정책 역할
예제를 간단하게 하기 위해서 상품 데이터들이 아닌, 상품명, 상품 가격만 만들었다
같은 이유로 주문 데이터를 DB에 저장하는 과정도 생략하고, 클라이언트에게 보내는 것 까지만 구현 한다
회원 저장소와 동일하게, 할인 정책 또한 구현체를 갈아끼울 수 있다
처음 설명했던대로, 아직 정해지지 않은 할인 정책을 임의로 사용하다가 교체할 수 있다
슬슬 다이어그램을 글로 설명하는데 한계를 느끼기 시작했다...
앞으로 관련된 내용은 좀 생략하고 개념과 코드 중심으로 정리를 하련다
아무튼, 이전에 설계했던 것 처럼 OrderService 인터페이스를 만들고,
그 구현체로 OrderServiceimpl 을 만든다
보통 인터페이스의 구현체가 한개라면 뒤에 impl 을 붙힌다고 한다
OrderServiceimpl 이 MemberRepository와 DiscountPolicy 를 사용한다
객체 다이어그램을 두가지 버전으로 만들었다
하나는 주문 서비스 구현체가 메모리 회원 저장소, 정액 할인 정책을 사용하는 것과
DB회원 저장소, 정률 할인 정책을 사용하는 것이다
이렇게 구현체의 변경이 일어나도 주문 서비스를 전혀 변경하지 않아도 된다
이걸 협력 관계를 그대로 재사용 할 수 있다고 한다
OCP와 DIP... 지금 두개가 구분이 잘 안되기는 하는데, 아무튼 둘다 지키게 되었다고 보면 될 것 같다'spring > 스프링 핵심 원리 강의 내용 정리' 카테고리의 다른 글
주문과 할인 도메인 실행과 테스트 (1) 2023.12.06 주문과 할인 도메인 개발 (0) 2023.12.06 회원 도메인 개발 (1) 2023.12.05 비즈니스 요구사항과 설계 (1) 2023.12.05 객체 지향 설계와 스프링 (1) 2023.12.05