Facade Design Pattern Explained

Facade provides a simplified, unified interface to a larger, more complex body of code, like a set of subsystems.

Published November 12, 2026

Facade provides a simplified, unified interface to a larger, more complex body of code, like a set of subsystems.

Why it exists

  • A complex subsystem with many interacting classes can be hard and error-prone for other code to use directly

How to apply it

  • Create one class that exposes simple, high-level methods, internally coordinating calls to the complex subsystem underneath
  • Calling code depends only on the simple facade, not on the subsystem's internal complexity

FAQ

Does a facade prevent access to the underlying subsystem?

No — code that needs finer control can still bypass the facade and use the subsystem directly; the facade just offers a simpler default path.

More General articles