Skip to content

Encapsulation (Information Hiding)

Separating "what something does" from "how it does it" reduces coupling and enables independent evolution of implementation.

Tension Addressed

Abstraction vs. Concreteness

Recognizable As

Any boundary where internal representation is hidden behind a stable interface: APIs, modules, classes, services, hardware abstraction layers

Canonical Sources

David Parnas, "On the Criteria To Be Used in Decomposing Systems into Modules" (1972); Bertrand Meyer, "Object-Oriented Software Construction" (1988)

Transfers To

API Design, Distributed Systems (service boundaries), Hardware Design (instruction set abstraction), Database Design (physical vs logical schema)

The key insight is that hiding decisions likely to change creates stable interfaces. This applies universally from transistors to microservices.