back home

Facade

[structural-patterns][design-patterns]

A facade is a class that provides a simple interface to a complex subsystem which contains lots of moving parts. A facade might provide limited functionality in comparison to working with the subsystem directly. However, it includes only those features that clients really care about.

Having a facade is handy when you need to integrate your app with a sophisticated library that has dozens of features, but you just need a tiny bit of its functionality.

It’s essentially a concise API which obfuscates lots of unneeded functions from aggregated sources.