참고 코드


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로 해서 번호가 변경될 수 있게 설정해 두었다.

그래서

  1. shoppingCart가 비워져 있는 경우 → 메인 메뉴 수만큼만의 값을 받을 수 있게 처리