Class Kiosk

java.lang.Object
challenge.lv2.Kiosk

public class Kiosk extends Object
Kiosk 클래스는 키오스크의 전체적인 흐름을 관리합니다. 모든 메뉴인 Menu 리스트와 키오스크 진행에 필요한 ShoppingCart,UserInputManager을 가집니다. 그 외에 키오스크 흐름을 제어할 수 있는 변수들을 global로 가집니다.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private int
    어떤 서비스 이용할 것인지 flag 역할을 하는 값
    private boolean
    장바구니가 비어있나?
    private int
    어떤 메뉴를 입력 했는지 저장하는 값
    private final List<Menu>
    전체 메뉴를 담는 Menu 리스트
    private final ShoppingCart
    장바구니 객체
    private final UserInputManager
    사용자 입력을 받는 객체
  • Constructor Summary

    Constructors
    Constructor
    Description
    Kiosk(List<Menu> menuList, ShoppingCart shoppingCart, UserInputManager userInputManager)
    새로운 Menu 객체를 생성합니다.
  • Method Summary

    Modifier and Type
    Method
    Description
    private void
    장바구니를 탐색하는 함수 장바구니 서비스인 1.주문. 2.장바구니 수정. 0.
    private void
    할인을 적용하는 함수입니다.
    private void
    어떤 카테고리 사용할지 입력 받기 userInputManager에서 받아온 '카테고리 혹은 장바구니 서비스 이용' 입력에 따라 오류 처리를 하는함수입니다.
    private boolean
    수정할 아이템 고르는 인풋 받기 장바구니 내용들을 출력하고 앞에 인덱스가 붇는데, 받은 숫자 값을 확인하고 장바구니 요소를 하나 삭제합니다.
    private boolean
    inputMenu(Menu selectedMenu)
    음식 메뉴를 선택하는 함수입니다.
    private void
    inputOrder(Menu selectedMenu)
    장바구니 담기 여부 입력받기 카테고리가 선택이되고 해당 카테고리에 속하는 음식 메뉴들을 출력합니다.
    private void
    전체 메뉴 카테고리를 출력하는 함수 장바구니가 비어있는지 확인하는 하여 isCartEmpty의 값을 수정합니다.
    void
    할인 목록을 출력하는 함수
    private void
    최종적으로 결제할지 여부를 결정하는 함수입니다.
    void
    키오스크를 작동하는 함수 작동 흐름은 키오스크 readme.md 의 아래에 정리해놓았습니다.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • shoppingCart

      private final ShoppingCart shoppingCart
      장바구니 객체
    • userInputManager

      private final UserInputManager 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

      private boolean inputMenu(Menu selectedMenu)
      음식 메뉴를 선택하는 함수입니다. userInputManager에게서 받아온 '메뉴 선택 값'에 따라 오류 처리를 하는함수입니다. 리턴 값에 따라서 inputMenu를 호출한 함수가 다음으로 해야할 일을 결정할 수 있습니다.
      Parameters:
      selectedMenu - 사용자가 선택한 메뉴 카테고리
      Returns:
      true - 유효한 메뉴를 선택한 경우 false - 사용자가 0을 입력하여 카테고리로 돌아간 경우
    • purchaseCart

      private void purchaseCart()
      최종적으로 결제할지 여부를 결정하는 함수입니다. 마찬가지로 userInputManager에게서 받아온 값으로 결제 출력과 돌아가기 기능을 합니다.
    • hasDiscount

      private void hasDiscount()
      할인을 적용하는 함수입니다. 할인목록을 출력하는 함수를 호출하고 userInputManager에서 받아온 값으로 어떤 할인을 적용할지 지정해줍니다. 지정된 할인에 따라서 장바구니의 totalPrice값을 조정합니다.
    • inputOrder

      private void inputOrder(Menu selectedMenu)
      장바구니 담기 여부 입력받기 카테고리가 선택이되고 해당 카테고리에 속하는 음식 메뉴들을 출력합니다. 출력한 뒤 userInputManager에서 사용자가 선택한 메뉴(+ 나가기) 값에 대해 출력값을 다르게 합니다.
      Parameters:
      selectedMenu - 선택한 카테고리 목록
    • printDiscount

      public void printDiscount()
      할인 목록을 출력하는 함수