키오스크를 도전 기능 Lv.2 까지 완료를 하고 나니 분명 처음에 설계를 잘 해서 클래스 분리를 잘 했다고 생각했는데?
구현에만 집중하다가 다시 보니 뭔가 코드가 깔끔하지 못 해서 마음에 안 든다. 그래서 다시 클래스별로 맡은 책임을 정리해서 리팩토링 해보기로 하였다.
몇시간 고민해본 끝에 다음과 같이 리팩토링을 도전한다.
- `KioskApp` - 키오스크 메인
- `kioskConfig` - 의존성 주입 및 설정
- `menu` Package - 메뉴 관련 패키지
- `Category` - 카테고리 Enum
- `MenuItem` - 메뉴 데이터 클래스
- `service` - 메뉴 비즈니스 로직 관련 패키지
- `MenuService` - 메뉴 관리
- `repository` - 메뉴 데이터 저장소
- `LocalMenuItemRepository`
- `cart` Package - 장바구니 관련 패키지
- `CartItem` - 장바구니 데이터 클래스
- `CartService` - 장바구니 비즈니스 로직
- `order` - 주문 관련 패키지
- `Order` - 주문 데이터 클래스
- `repository` - 주문 데이터 저장소
- `LocalOrderRepository`
- `service` - 주문 비즈니스 로직 패키지
- `OrderService` - 주문 비즈니스 로직
- `discount` - 할인정책 관련 패키지
- `Grade` - 할인 등급 Enum
- `DiscountService` - 할인 비즈니스 로직
- `utils` - 유틸 관련 패키지
- `InputHandler` - 사용자 입력 처리 유틸리티
- `OutputHandler` - 출력 처리 유틸리티
진행중에 또 수정될 수 있지만 최대한 이대로 리팩토링을 완료해보겠다.
'개발 > 내일배움캠프 TIL' 카테고리의 다른 글
[TIL #27] SQL HAVING (0) | 2024.11.28 |
---|---|
[TIL #26] 키오스크 과제 완성 그리고 그 과정 (0) | 2024.11.27 |
[TIL #23] 싱글톤 패턴에 대하여 (0) | 2024.11.23 |
[TIL #22] 키오스크 DIP, OCP 원칙 지키기 (0) | 2024.11.22 |
[TIL #21] 키오스크 과제 설계 및 중간 리팩토링 (0) | 2024.11.21 |