Once we have our über menu, we can use this pattern
to treat “individual objects and compositions uniformly.”
What does that mean? It means if we have a tree structure
of menus, sub-menus, and perhaps subsubmenus along with
menu items, then any menu is a “composition” because
it can contain both other menus and menu items. The
individual objects are just the menu items – they don’t hold
other objects. As you’ll see, using a design that follows the
Composite Pattern is going to allow us to write some simple
code that can apply the same operation (like printing!) over
the entire menu structure.