Provide a unified interface to a set of interfaces in a subsystem. Facade defines a higher-level interface that makes the subsystem easier to use.
A Facade is a "leaky" encapsulation mechanism. It encapsulates the subsystem with methods that present an abstract view, but does not prevent direct access to the subsystem classes.