💯 이번 단원의 목적
- 객체 저장 방식을 보여 주지 않으면서 클라이언트가 객체에 일일이 접근할 수 있게 해주는 방법을 알아본다.
- 객체들로 구성된 슈퍼 컬렉션과 객체의 역할을 알아본다.
속보! 객체마을 식당과 팬케이크 하우스 합병
- 팬케이크 하우스에서 파는 아침 메뉴와 객체마을 식당에서 파는 점심 메뉴를 한 곳에서 먹을 수 있게 되었다.
메뉴 항목 살펴보기
- 메뉴 항목을 나타내는
MenuItem
클래스는 합의가 되었다.
MenuItem
루와 멜의 메뉴 구현법 비교하기
import java.util.ArrayList;
import java.util.List;
public class PancakeHouseMenu implements Menu { // 루가 구현한 팬케이크 하우스 메뉴
List<MenuItem> menuItems;
public PancakeHouseMenu() {
menuItems = new ArrayList<MenuItem>(); // ArrayList에 메뉴 항목을 저장
addItem("K&B 팬케이크 세트", "스크램블 에그와 토스트가 곁들여진 팬케이크", true, 2.99);
addItem("레귤러 팬케이크 세트", "달걀 프라이와 소시지가 곁들여진 팬케이크", false, 2.99);
addItem("블루베리 팬케이크", "신선한 블루베리와 블루베리 시럽으로 만든 팬케이크", true, 3.49);
addItem("와플", "취향에 따라 블루베리나 딸기를 얹을 수 있는 와플", true, 3.59);
}
public void addItem(String name, String description, boolean vegetarian, double price) {
MenuItem menuItem = new MenuItem(name, description, vegetarian, price);
menuItems.add(menuItem); // 메뉴를 추가할 때는 객체를 새로 만들고 ArrayList에 추가
}
public List<MenuItem> getMenuItems() {
return menuItems;
}
// 기타 메뉴 관련 메소드
}