https://github.com/BibliyaSeo/console-kiosk/tree/dev/src/main/java/org/example/lv6
도전 기능을 하려고 한다.
기존 필수 기능에서는 장바구니라는 개념이 없었는데
도전 기능에서는 장바구니라는 개념이 생겼다.
도전 과제 lv1→ lv6, lv2→ lv7로 표기!
처음엔 예시로 보이는 코드처럼 구현하는 것에 집중했다.
일단 장바구니를
List<MenuItem> shoppingCart = new ArrayList<>();
으로 만들어서 사용했는데! 수량이 필요한 것이었다. 기존 MenuItem에는 수량을 설정해 두지 않았기 때문에 값으로 넣기가 애매했다. 그래서 MenuItem을 가지고 있고 수량도 함께 가지고 있는 CartItem 클래스를 생성해서
List<CartItem> shoppingCart = new ArrayList<>();
으로 만들어서 사용했다.
shoppingCart가 비워져 있으면 Order Menu를 출력하지 않게, 값이 들어있으면 Order Menu가 출력되게 분기처리를 했고 지금은 메뉴 아이템이 정적이지만 나중에 동적으로 변할 수 있기 때문에 바로 4,5로 처리하지 않고 메인 메뉴의 size()에 +1, +2로 해서 번호가 변경될 수 있게 설정해 두었다.
그래서
shoppingCart가 비워져 있는 경우 → 메인 메뉴 수만큼만의 값을 받을 수 있게 처리