waitress.java

来自「深入浅出设计模式」· Java 代码 · 共 72 行

JAVA
72
字号
package headfirst.iterator.dinermerger;public class Waitress {	PancakeHouseMenu pancakeHouseMenu;	DinerMenu dinerMenu; 	public Waitress(PancakeHouseMenu pancakeHouseMenu, DinerMenu dinerMenu) {		this.pancakeHouseMenu = pancakeHouseMenu;		this.dinerMenu = dinerMenu;	} 	public void printMenu() {		Iterator pancakeIterator = pancakeHouseMenu.createIterator();		Iterator dinerIterator = dinerMenu.createIterator();		System.out.println("MENU\n----\nBREAKFAST");		printMenu(pancakeIterator);		System.out.println("\nLUNCH");		printMenu(dinerIterator);	} 	private void printMenu(Iterator iterator) {		while (iterator.hasNext()) {			MenuItem menuItem = (MenuItem)iterator.next();			System.out.print(menuItem.getName() + ", ");			System.out.print(menuItem.getPrice() + " -- ");			System.out.println(menuItem.getDescription());		}	} 	public void printVegetarianMenu() {		printVegetarianMenu(pancakeHouseMenu.createIterator());		printVegetarianMenu(dinerMenu.createIterator());	} 	public boolean isItemVegetarian(String name) {		Iterator breakfastIterator = pancakeHouseMenu.createIterator();		if (isVegetarian(name, breakfastIterator)) {			return true;		}		Iterator dinnerIterator = dinerMenu.createIterator();		if (isVegetarian(name, dinnerIterator)) {			return true;		}		return false;	}	private void printVegetarianMenu(Iterator iterator) {		while (iterator.hasNext()) {			MenuItem menuItem = (MenuItem)iterator.next();			if (menuItem.isVegetarian()) {				System.out.print(menuItem.getName());				System.out.println("\t\t" + menuItem.getPrice());				System.out.println("\t" + menuItem.getDescription());			}		}	}	private boolean isVegetarian(String name, Iterator iterator) {		while (iterator.hasNext()) {			MenuItem menuItem = (MenuItem)iterator.next();			if (menuItem.getName().equals(name)) {				if (menuItem.isVegetarian()) {					return true;				}			}		}		return false;	}}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?