/// <summary> /// Prints every item on the menu /// </summary> public void PrintMenu() { //Idea 1, just use a loop for each menu #region //idea 1 - Commented Out /* * Console.WriteLine("==== Printing breakfast menu ===="); * for(int i = 0; i < breakfastItems.Count; i++) * { * MenuItem menuItem = (MenuItem)breakfastItems[i]; * Console.WriteLine("{0} ${1} - {2}",menuItem.Name, menuItem.Price,menuItem.Description); * } * Console.WriteLine("\n==== Printing lunch menu ===="); * for (int i = 0; i < lunchItems.Length; i++) * { * MenuItem menuItem = lunchItems[i]; * if(lunchItems[i] != null) * Console.WriteLine("{0} ${1} - {2}", menuItem.Name, menuItem.Price, menuItem.Description); * } */ #endregion //Idea 2, Iterator design pattern #region //Idea 2 Iterator pancakeIterator = pancakeHouseMenu.CreateIterator(); Iterator dinerIterator = dinerMenu.CreateIterator(); Console.WriteLine("==== Breakfast Menu ===="); PrintMenu(pancakeIterator); Console.WriteLine("\n==== Lunch Menu ===="); PrintMenu(dinerIterator); #endregion }
public void PrintMenu() { IIterator pancakeIterator = pancakeHouseMenu.CreateIterator(); IIterator dinerIterator = dinerMenu.CreateIterator(); Console.WriteLine("MENU\n----\nBREAKFAST"); PrintMenu(pancakeIterator); Console.WriteLine("\nLUNCH"); PrintMenu(dinerIterator); }