Facade Pattern
Source:: Software Design Patterns - Best Practices for Software Developers
The facade pattern provides a convenient higher-level interface to a larger body of code, hiding its true underlying complexity. A facade literally means the front of a building or an outward appearance to hide a less pleasant reality.
The facade pattern both simplifies the interface of a class and it also decouples the class from the code that utilizes it. This gives us the ability to indirectly interact with subsystems in a way that can sometimes be less prone to error than accessing the subsystem directly. A facade’s advantages include ease of use and often a small size-footprint in implementing the pattern.
Usually a single facade object is needed and is implemented as a singleton.