Information Hiding¶
Core Idea¶
Information hiding is the pattern of deliberately concealing some internal facts behind a stable public surface, so consumers interact only with the surface and cannot depend on what lies behind. The concealment is purposive: a boundary, a stable contract, and controlled crossings together cap each consumer's dependency — secrecy is the means, freedom-to-change the end.
How would you explain it like I'm…
Buttons, Not Wires
Hide The Messy Insides
Stable Surface, Free Insides
Broad Use¶
- Software: Parnas module decomposition, OO encapsulation, opaque handle types, the principle of least privilege.
- Governance: cabinet confidentiality, peer-review anonymity, the corporate veil, trade-secret protection.
- Diplomacy: back-channel negotiations behind public positions; intelligence sources-and-methods protection.
- Law: attorney-client privilege, physician-patient confidentiality, the rule against character evidence.
- Biology: the cell membrane as a controlled interface over concealed biochemistry; hormones as the contract over hidden organ-level state.
- Cryptography: zero-knowledge proofs, secure multi-party computation, differential privacy.
Clarity¶
Shifts the question from "what does X reveal?" — forensic — to "what should X reveal, given what we want to be free to change?" — design — and names the implicit-coupling failure mode.
Manages Complexity¶
Replaces whole-system understanding with interface understanding, shrinking the coupling budget from "n × m internal facts" to "n × contract size" — a quadratic-to-linear simplification.
Abstract Reasoning¶
Frames any system-with-consumers around four questions: what is concealed, what is promised, what may cross, and where does the concealed side leak through unintended channels.
Knowledge Transfer¶
- Diplomatic protocol: a software architect reading a back-channel case study sees the same contract design.
- Cell biology: a cryptographer reading a hormonal-signaling paper sees the same boundary discipline.
- API governance: semantic versioning and audited specifications are contract-enforcement moves shared with oath-keeping institutions.
Example¶
A hash-table module exposes only get, put, delete and hides the bucket
layout, freeing the maintainer to swap the hash function — but if callers come
to depend on iteration order, that observable side effect becomes part of the
contract (Hyrum's law) and the freedom is lost.
Relationships to Other Primes¶
Parents (2) — more general patterns this builds on
- Information Hiding is a kind of, typical Abstraction — Both present a simplified surface over a complex interior; the file frames hiding as a change-protection-motivated specialization adjacent to abstraction (which selects for comprehension). Owner picks boundary vs abstraction lineage.
- Information Hiding presupposes Boundary — Information hiding is a deliberately-drawn boundary with a controlled-access policy (concealed-side vs visible-side); it presupposes a boundary as its load-bearing element.
Children (1) — more specific cases that build on this
- Abstract Data Type presupposes, typical Information Hiding — The file: information_hiding is the principle; ADT is 'the structural pattern that operationalises the principle' into a role-vs-occupant split. ADT presupposes hiding. information_hiding is a candidate (CAND-R2-066-05).
Path to root: Information Hiding → Boundary
Not to Be Confused With¶
- Information Hiding is not Information Asymmetry because asymmetry is a descriptive, often as-found state (one party knows more), whereas information hiding is a deliberate design act that creates a boundary to cap dependency.
- Information Hiding is not Access Control because access control governs who is authorized to reach a known resource, whereas information hiding governs what is even visible to depend on — invisibility, not permission gating.
- Information Hiding is not Abstraction because abstraction omits detail to expose essentials for comprehension, whereas information hiding conceals facts behind a contract specifically to prevent coupling to decisions likely to change.