Coding/언어-JAVA

JAVA 미니 프로젝트 : BurgerQueen

꿀딴지- 2023. 8. 17. 14:08

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