Thus, Facade is a design pattern that hides the details and
complexities of the lower-level software services for which it is written,
making the service easier to use. In fact, the lower-level classes need not be
classes at all; they can be an API in the form of a code library or a Web
service.
A Facade also provides a unified entry point into the layers
of the software. This reduces the application's dependency on the software
service details and allows the Facade to hide future changes in the software
service itself.