1. 비즈니스 요구사항 정의
회원
- 회원 가입, 조회 기능
- 회원은 일반 / VIP 등급
- 어떤 DB를 사용할지는 미정
주문 정책
- 회원은 상품을 주문할 수 있음
- 회원 등급에 할인 정책 적용
- VIP 의 경우 1000원 할인 해주는 고정 할인을 해주는 정책이 있으나 추후 바뀔 수도 있음
2. 회원 도메인 설계
비즈니스 요구 사항대로 설계
1) 도메인 협력 관계
2) 클래스 다이어그램
3) 객체 다이어그램
3. 회원 도메인 개발 순서
회원 가입 / 회원 조회
1) member/Grade : 회원등급, enum 데이터 타입을 통해 상수값의 집합을 나타냄, 상수를 그룹화하고 명시.
2) member/Member: 회원 엔티티, 필드값과 Getter, Setter 정의
3) member/MemberRepository interface: 회원 저장소 인터페이스. Memeber 객체에서 사용할 기능 명시.
4) member/MemoryMemberRepository: 회원 저장소 구현체, Memeber 객체 기능 구현, 데이터베이스 상호작용.
5) member/interface MemberService: 회원 서비스 인터페이스, 비즈니스 로직 구현, 복잡한 시나리오 구현.
6) member/MemberServiceImpl: 회원 서비스 구현체, MemberRepository 객체 정의 및 MemoryMemberRepository의 객체 기능을 끌고와 비즈니스 로직 구현
4. 주문 도메인 설계
비즈니스 요구 사항대로 설계
1) 도메인 협력 관계
2) 클래스 다이어그램
3) 객체 다이어그램
5. 회원 도메인 개발 순서
주문 생성 / 회원 등급 조회 / 할인 등급에 따른 할인 적용 / 주문 결과 반환
1) discount/interface DiscountPolicy: 할인 정책 인터페이스, 멤버와 가격을 넣으면 할인 금액 반환
2) discount/interface FixDiscountPolicy: 고정 할인 금액 구현체, vip 일 경우 1000원 할인 구현
3) order/ Order: 주문 엔티티, 필드값과 Getter, Setter 정의
4) order/interface OrderService : 주문 서비스 인터페이스, 주문 생성 기능 명시
5) order/ OrderServiceImpl: 필요한 repository 객체 정의 후 주문 서비스 로직 (주문 생성) 구현
6. 기타 코멘트
'백앤드 개발 > Java & Spring' 카테고리의 다른 글
[Spring boot] 회원, 주문 프로젝트 - 스프링으로 전환 (0) | 2023.11.07 |
---|---|
[Spring boot] 회원, 주문 프로젝트 - 객체 지향 원리 적용 (0) | 2023.11.07 |
[Spring boot] JPA와 스프링 데이터 JPA (0) | 2023.10.31 |
[Spring boot] 프로젝트 환경 설정과 Spring 어플리케이션 구조 (0) | 2023.10.25 |
[Java] 컬렉션 프레임워크 실습 (0) | 2023.10.19 |