Facade
Description
A facade is the deliberately-shaped public face of a subsystem — a small, coherent surface that consumers interact with instead of the intricate, multi-part machinery underneath. The facade selects the common cases, names them with a small vocabulary, and absorbs the configuration work that would otherwise be the caller’s problem. The subsystem is still there, still complex, still exposing its full surface to anyone who needs to bypass the facade — but the facade is the default path, and the default path is short. The shape generalizes broadly: a building’s facade hides structural-engineering complexity behind aesthetic articulation; an executive summary hides hundred-page analysis behind a paragraph; a “hello world” tutorial hides framework configuration behind ten lines; a REST gateway hides microservice topology behind a clean resource model. What unifies them is the consumer-facing decision to simplify the surface so the most common use case is easy, paired with the implicit promise that the underlying capability is still reachable when more is needed.Triggers
User-initiated: User says the API is “too much” or wants a “simpler way to do the common thing.” Vocabulary cues: “simpler API,” “convenience wrapper,” “high-level interface,” “hello world,” “getting started,” “the easy way.” Agent-initiated: Agent notices a recurrent setup-and-config sequence that consumers repeatedly write to reach a common use case. Candidate inference: “introduce a facade that absorbs the boilerplate; leave the subsystem reachable for non-common cases.” Situation-shape signals: Documentation that opens with thirty lines of import-and-configure before the first interesting call. Heavy adoption of a “kitchen-sink” example because the proper-decomposed API is too cumbersome. Bug reports that boil down to “I wanted to do the obvious thing and had to wade through too much detail.”Exclusions
- Subsystem is already simple — if the underlying API is already small and coherent, a facade is just an extra layer of indirection with no payoff.
- Use cases vary too widely — facades work when there’s a clear “common case” to optimize for; if every consumer needs something different, the facade either becomes huge (defeating its purpose) or becomes a bottleneck consumers route around.
- Facade hides cost asymmetries — if the facade makes an expensive operation look cheap (e.g., a one-liner that quietly does a thousand RPCs), it can drive misuse; better to keep the cost visible at the surface.
- The facade prevents reaching the subsystem — a facade that closes off the subsystem entirely is no longer a facade; it’s a coarse-grained replacement, and consumers will hit its limits and route around or fork.
Structure
Relationships
- surface — facade IS a surface; choosing the facade’s shape is choosing the consumer-facing surface deliberately.
- leaky-abstraction — every non-trivial facade leaks; the leaks are the load-bearing detail the simplification couldn’t fully absorb.
- stack-layer — facades often layer (top-tier facade → mid-tier API → low-tier primitives); each layer is a facade over the next.
- uniformity-dividend — facades pay the uniformity dividend by collapsing many slightly-different entry points into one consistent surface.
- graduation-promotion — staged-exposure designs use the facade as the beginner surface, with explicit pathways to the lower-level subsystem for advanced users.
Examples
Architectural facades — the cross-domain ancestor (centuries-old in building architecture). · architecture-and-design
Architectural facades — the cross-domain ancestor (centuries-old in building architecture). · architecture-and-design
Executive summary / TL;DR / abstract · languages-and-literature
Executive summary / TL;DR / abstract · languages-and-literature
Jakob Nielsen, "Progressive Disclosure" (Nielsen Norman Group, 2006); Alan Cooper et al., *About Face: The Essentials of Interaction Design* (4th ed., 2014). · computer-science
Jakob Nielsen, "Progressive Disclosure" (Nielsen Norman Group, 2006); Alan Cooper et al., *About Face: The Essentials of Interaction Design* (4th ed., 2014). · computer-science
Building facades · architecture-and-design
Building facades · architecture-and-design
Executive summary / abstract / TL;DR conventions in non-software writing — facade structure long predates software · languages-and-literature
Executive summary / abstract / TL;DR conventions in non-software writing — facade structure long predates software · languages-and-literature
Gamma, Helm, Johnson, Vlissides (1994), Design Patterns: Elements of Reusable Object-Oriented Software (Gang of Four). Structural pattern, ch. 4. · computer-science
Gamma, Helm, Johnson, Vlissides (1994), Design Patterns: Elements of Reusable Object-Oriented Software (Gang of Four). Structural pattern, ch. 4. · computer-science
Gang of Four (1994), *Design Patterns* — the OOP coinage. · computer-science
Gang of Four (1994), *Design Patterns* — the OOP coinage. · computer-science
GoF Facade · computer-science
GoF Facade · computer-science
"Hello world" tutorials · computer-science
"Hello world" tutorials · computer-science
Operating system shells / CLIs · computer-science
Operating system shells / CLIs · computer-science
REST API over microservices · computer-science
REST API over microservices · computer-science
Software-library top-level imports · computer-science
Software-library top-level imports · computer-science
import requests; requests.get(url) is a facade over the full HTTP-machinery surface; the Session class is the next-tier-down surface.