Class Kiosk
java.lang.Object
challenge.lv2.Kiosk
Kiosk 클래스는 키오스크의 전체적인 흐름을 관리합니다.
모든 메뉴인 Menu 리스트와 키오스크 진행에 필요한 ShoppingCart,UserInputManager을 가집니다.
그 외에 키오스크 흐름을 제어할 수 있는 변수들을 global로 가집니다.-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate int어떤 서비스 이용할 것인지 flag 역할을 하는 값private boolean장바구니가 비어있나?private int어떤 메뉴를 입력 했는지 저장하는 값전체 메뉴를 담는Menu리스트private final ShoppingCart장바구니 객체private final UserInputManager사용자 입력을 받는 객체 -
Constructor Summary
ConstructorsConstructorDescriptionKiosk(List<Menu> menuList, ShoppingCart shoppingCart, UserInputManager userInputManager) 새로운Menu객체를 생성합니다. -
Method Summary
Modifier and TypeMethodDescriptionprivate void장바구니를 탐색하는 함수 장바구니 서비스인 1.주문. 2.장바구니 수정. 0.private void할인을 적용하는 함수입니다.private void어떤 카테고리 사용할지 입력 받기 userInputManager에서 받아온 '카테고리 혹은 장바구니 서비스 이용' 입력에 따라 오류 처리를 하는함수입니다.private boolean수정할 아이템 고르는 인풋 받기 장바구니 내용들을 출력하고 앞에 인덱스가 붇는데, 받은 숫자 값을 확인하고 장바구니 요소를 하나 삭제합니다.private boolean음식 메뉴를 선택하는 함수입니다.private voidinputOrder(Menu selectedMenu) 장바구니 담기 여부 입력받기 카테고리가 선택이되고 해당 카테고리에 속하는 음식 메뉴들을 출력합니다.private void전체 메뉴 카테고리를 출력하는 함수 장바구니가 비어있는지 확인하는 하여 isCartEmpty의 값을 수정합니다.void할인 목록을 출력하는 함수private void최종적으로 결제할지 여부를 결정하는 함수입니다.void키오스크를 작동하는 함수 작동 흐름은 키오스크 readme.md 의 아래에 정리해놓았습니다.
-
Field Details
-
shoppingCart
장바구니 객체 -
userInputManager
사용자 입력을 받는 객체 -
categoryInput
private int categoryInput어떤 서비스 이용할 것인지 flag 역할을 하는 값 -
itemInput
private int itemInput어떤 메뉴를 입력 했는지 저장하는 값 -
isCartEmpty
private boolean isCartEmpty장바구니가 비어있나? 확인 여부
-
Constructor Details
-
Kiosk
Kiosk(List<Menu> menuList, ShoppingCart shoppingCart, UserInputManager userInputManager) 새로운Menu객체를 생성합니다.- Parameters:
menuList- 전체 메뉴를 담는Menu리스트shoppingCart- 카테고리 이름userInputManager- 카테고리 번호
-
-
Method Details
-
startKiosk
public void startKiosk()키오스크를 작동하는 함수 작동 흐름은 키오스크 readme.md 의 아래에 정리해놓았습니다. -
browseCart
private void browseCart()장바구니를 탐색하는 함수 장바구니 서비스인 1.주문. 2.장바구니 수정. 0. 나가기를 선택할 수 있습니다. 선택된 값에 따라서 대응하는 함수를 호출합니다. -
inputEditItem
private boolean inputEditItem()수정할 아이템 고르는 인풋 받기 장바구니 내용들을 출력하고 앞에 인덱스가 붇는데, 받은 숫자 값을 확인하고 장바구니 요소를 하나 삭제합니다. 삭제 후에 다시 장바구니 목록을 불러와서 여러번 삭제할 수 있습니다. Returns boolean. -> false일시 장바구니 서비스 목록으로 되돌아갑니다. -
printCategory
private void printCategory()전체 메뉴 카테고리를 출력하는 함수 장바구니가 비어있는지 확인하는 하여 isCartEmpty의 값을 수정합니다. -
inputCategory
private void inputCategory()어떤 카테고리 사용할지 입력 받기 userInputManager에서 받아온 '카테고리 혹은 장바구니 서비스 이용' 입력에 따라 오류 처리를 하는함수입니다. isCartEmpty값에 따라서 사용자가 입력할 수 있는 바운더리를 넓힙니다. -
inputMenu
음식 메뉴를 선택하는 함수입니다. userInputManager에게서 받아온 '메뉴 선택 값'에 따라 오류 처리를 하는함수입니다. 리턴 값에 따라서 inputMenu를 호출한 함수가 다음으로 해야할 일을 결정할 수 있습니다.- Parameters:
selectedMenu- 사용자가 선택한 메뉴 카테고리- Returns:
true- 유효한 메뉴를 선택한 경우false- 사용자가 0을 입력하여 카테고리로 돌아간 경우
-
purchaseCart
private void purchaseCart()최종적으로 결제할지 여부를 결정하는 함수입니다. 마찬가지로 userInputManager에게서 받아온 값으로 결제 출력과 돌아가기 기능을 합니다. -
hasDiscount
private void hasDiscount()할인을 적용하는 함수입니다. 할인목록을 출력하는 함수를 호출하고 userInputManager에서 받아온 값으로 어떤 할인을 적용할지 지정해줍니다. 지정된 할인에 따라서 장바구니의 totalPrice값을 조정합니다. -
inputOrder
장바구니 담기 여부 입력받기 카테고리가 선택이되고 해당 카테고리에 속하는 음식 메뉴들을 출력합니다. 출력한 뒤 userInputManager에서 사용자가 선택한 메뉴(+ 나가기) 값에 대해 출력값을 다르게 합니다.- Parameters:
selectedMenu- 선택한 카테고리 목록
-
printDiscount
public void printDiscount()할인 목록을 출력하는 함수
-