키오스크의 필수 요구기능은 구현완료하여 추가적인 기능을 구현하였다.
- 상품을 고르면 옵션을 넣어 메뉴의 사이즈를 고를수있는 기능을 구현하였다.
기존 각 상품의 카테고리에 상품 카테고리리스트와 동일하게 정의한 optionList를 정의하여 선택한 상품의 리스트가 optionList에 추가한 후 옵션에따라 ArrayList의 set함수를 이용하여 이름, 가격을 수정한후 저장하였다. 이후 order인스턴스의 orderList로 저장한 후 다음 주문을 위해optionList를 초기화하였다.
- 상품카테고리리스트에서 숨겨진 0을 입력시 지금까지 총판매금액과 판매상품목록을 나타내는 기능을 구현하였다.
주문이 완료된 상품만 판매상품에 추가되어야 하기 때문에 주문완료 후 orderList초기화 전에 상품목록을 sellProduct리스트에 추가하였다.
상품 카테고리리스트에서 0을 눌렀을때 위와같은 메서드가 동작하여 판매가 이뤄지고있는 루프동안 판매된 상품리스트와 금액을 조회할수있는기능을 구현하였다.
아쉬운점
상품의 옵션인 크기에 따른 금액변화를 일괄적으로 천원으로 설정한점이 아쉬웠다.또한 중복코드가많아 코드의 수정및 삭제가 용이하지않았다. 향후 코드를 수정의 방향성은 상품의 객체리스트를 하나의 클래스로 분리하여 상품의 정보의 추가 및 삭제가 용이하도록 메서드를 작성한다면 각각의 상품의 옵션금액을 설정할수있을 것으로 생각한다.또한 각 상품카테고리의 중복코드가 많아 이를 새로운클래스를 만들어 상속관계를 설정하여 오버라이드한다면 중복코드의 사용을 줄일수 있을것으로 예상한다.