Discussion Facade discusses encapsulating a complex subsystem within a single interface object. This reduces the learning curve necessary to successfully leverage the subsystem. It also promotes decoupling the subsystem from its potentially many clients. The Facade object should be a fairly simple advocate or facilitator. The Facade defines a unified, higher level interface to a subsystem that makes it easier to use.
Consumers encounter a Facade when ordering from a catalog.
The consumer calls one number and speaks with a customer service representative. The customer service representative acts as a Facade, providing an interface to the order fulfillment department, the billing department, and the shipping department. Remember that Adapter makes two existing interfaces work together as opposed to defining an entirely new one. Whereas Flyweight shows how to make lots of little objects, Facade shows how to make a single object represent an entire subsystem. Mediator is similar to Facade in that it abstracts functionality of existing classes.