오늘은 배운 JAVA를 이용해서 키오스크 만들기를 했다.
나는 제일 많이 써본 키오스크가 맥도날드인 관계로 맥도날드 키오스크를 완성했다.
문제점
처음에 아무것도 모른채로 배운걸 써먹을려고 코드를 짰는데, 카테고리와 주문 메뉴 음식들 모두 추상화까지 써서 클래스로 하나하나 만들어서 등록해줬었다.
시도해본 것들
클래스 Kiosk에서 Menu클래스를 포함하고 Menu클래스는 그 뒤에 카테고리별 클래스들이 상속하고, 카테고리별 클래스내에 음식을 카테고리별로 묶은 추상화abstract클래스를 상속하는 음식들을 포함한다.
해당 방법으로 구현은 완료되고 동작도 했으나 코드가 깔끔하지 못하고, 비효율적이다.
해결
팀원들과 코드리뷰에서 알게된 사실 카테고리별로만 클래스를 나누고 해당 클래스에 리스트형태로 생성자에서 add받아와서 음식들을 저장해준다.
코드가 한결 짧아지고, 클래스 수도 줄어 알아보기 쉬워졌다.
알게된 점
앞서 해본 추상화클래스와 클래스들을 연결해서 구현하는 건 삽질이었지만, 추상화에대해 좀 더 이해하고, 클래스들 상속관계를 더 이해할 수 있었다. 자료구조의 사용도 머리로만 아는게 아닌 직접 써보니 더 공부가 된것같다.
그 외 알게된점
- ArrayList형.clear()는 배열을 모두 지워주는 명령어고, ArrayList형.removeAll()은 해당하는 배열을 특정해서 모두 지울 수 있는 차이점이있다.
- 숫자만 입력받길 원할 때 return Integer.parseInt(result); Integer의 저 메소드를 이용해 Int형으로 변환해준다.