java 수업과 더불어 약 1주일간(8/7~8/14) 함께 진행한 미니 PJT
버거퀸 주문 프로그램 만들기
https://github.com/youngH02/burgerqueen/tree/final_burger
메뉴 보여주고 입력받아서 장바구니 + 할인혜택 넣어주는 프로그램이다.
객체를 만들고 서로 의존관계를 가지고, 클래스 간에 어떻게 사용해야 할지에 대해
고민을 많이 했던 것같다.
막막했는데, 여차저차 일단 완성은 했다.
1. 메뉴화면 및 판매상품 정보
- 메뉴별로 객체를 만드는데 상속을 통해 다형성 사용하기
- 출력 시 각 상품의 카테고리 정보를 가지고 카테고리별로 정렬
- 사용자에게 입력받은 메뉴 번호와 각 상품을 일치시키고 장바구니로 담기
- 메뉴 구분을 위해 메뉴인스턴스 생성 시 고유한 id값 함께 생성하기
2. 주문받아 장바구니에 넣기
- 메뉴객체 생성 시 단품별 할인정책 적용하기
- 장바구니 객체에 상품을 넣고, 동일 상품이 장바구니에 이미 담겨있을 경우 수량만 증가시키기
- 할인 정책(%, 원)을 정책으로 만들되 discountType으로 구분하여 하나의 클래스에서 처리하고 다른방식의 할인정책까지 수용가능하도록 함
3. 할인 및 프로모션 적용해서 영수증 형태로 파일저장
- 프로모션 객체를 생성하고, 사용자가 필수로 선택한 정보와 주문메뉴에 따라 자동으로 적용되는 세트프로모션을 정의함
- 프로모션을 부모클래스로 두고 세트프로모션, 일반프로모션을 정의하였으며 이외 추가 프로모션도 적용가능하도록 함
- 일반 프로모션은 사용자에게 입력받은 숫자를 기준으로 적용
- 세트 프로모션은 장바구니에 담긴 상품 id와 프로모션이 적용되어야 할 세트 상품들의 id를 set으로 비교하여 자동 할인 적용
4. 배달현황 업데이트
- 장바구니 주문완료 기준으로 배달객체에 집어 넣기
- 배달 인스턴스에 항목이 추가되는 시점에 랜덤으로 배달완료 시간을 생성
- 배달 STATUS를 통해 한번에 배달 가능한(배달중) 건수를 final(2건)으로 설정
- 배달현황을 조회 할 때 마다 시간을 배달소요시간을 감소시키고 배달완료되면 다음 배달을 배달 중으로 변경
5. 기타
- 입력오류나 안내같은 출력문구를 일치시키기 위해 반복되는 문자열은 앞쪽에서 미리 선언해서 사용해봄
- 가능한한 다양한 메뉴, 할인정책, 프로모션 정책을 수용가능하도록 파라미터를 정의하고 상속을 통해 다형성을 사용함
- 메뉴를 id화 하여 다른곳에서 체크할 때 유용하게 사용함
'Coding > 언어-JAVA' 카테고리의 다른 글
JAVA Q&A (0) | 2023.08.17 |
---|---|
JAVA 메서드 활용 (0) | 2023.08.17 |
JAVA 스레드(Thread) #Day10 (0) | 2023.08.17 |
JAVA 파일입출력(File I/O) #Day9 (0) | 2023.08.17 |
JAVA 사용자 입출력(Scanner, Printf) (0) | 2023.08.17 |