Name: Facade Intent: provide a uniform, consistent interface to a set of related object Structure: - create a single object (the Facade) that holds references to the related object - access to the Facade methods/services is uniform - the Facade passes requests to the related objects and returns results to the client Notes: similar to Proxy and Adapater (delegation, this layer) Notes (on binary tree) - implementation of Composite with NullObject - inserting a key in a Leaf produces something that is not a Leaf - the Branch constructor cannot enforce efficiently the "searchness" of the tree - the Facade solve all these problems