#Facade
The facade pattern creates a simple way to use a complex system. The client has a very simple interface to use, which then handles the logic of using the complex system.
##When to Use It
- When a library should be made more readable
- When dependencies of a library on outside code need to be reduced
- When multiple APIs need to be wrapped as one
##Benefits
- Complex code is combined into one method
- Libraries made more readable
- Code is needed to be made less dependent
- Creates weak coupling as internal components are not called directly by client
##Drawbacks
- Less control on internal functionality
- If classes need a small variation to create a facade, it could get very, very complex