Let’s think about this in terms of our menus: this pattern
gives us a way to create a tree structure that can handle
a nested group of menus and menu items in the same
structure. By putting menus and items in the same
structure we create a part-whole hierarchy; that is, a tree of
objects that is made of parts (menus and menu items) but
that can be treated as a whole, like one big über menu.