public override void Print() { Console.WriteLine("----------------MENU:---------------------"); Console.WriteLine("{0}, {1}", GetName(), GetDescription()); Console.WriteLine("-----------------------------------------"); //Print Menus & SubMenus MenuIterator menuIterator = new MenuIterator(menuComponents); while (menuIterator.HasNext()) { MenuComponent component = (MenuComponent)menuIterator.Next(); Console.WriteLine("Component Retrived: {0}", component.GetType().Name); component.Print(); //Printing Individual Component(Also through this class.) } }
public Object Next() { if (HasNext()) { Iterator iterator = (Iterator)stack.Peek(); MenuComponent component = (MenuComponent)iterator.Next(); if (component.GetType() == typeof(Menu)) { stack.Push(component.CreateIterator()); } return(component); } else { return(null); } }