Skip to content

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

A vending machine has buttons on the front, but all the wires and gears are hidden inside. You press a button and get your snack — you never need to know how the insides work. That way the owner can swap out the insides for better ones and your buttons still work the same. The machine shows you a simple front and keeps the messy parts tucked away on purpose.

Hide The Messy Insides

Information hiding means a system deliberately keeps some of its inner workings tucked behind a simple, steady front, so the people using it only deal with the front. The idea is that whatever you don't *need* to know, you shouldn't be able to *depend* on — because if you depend on the hidden parts, they can never change without breaking you. So a boundary is drawn around the parts likely to change, a clear promise is made about how the front will behave, and only a few approved 'handles' let any inside fact cross over. It's not secrecy just to be secret; the point of hiding is to keep the *freedom to change* the inside later without breaking anyone.

Stable Surface, Free Insides

Information hiding is the structural pattern of deliberately concealing some internal facts about a system behind a stable public surface, so consumers interact only with that surface and remain unable — and unconcerned — about what lies behind. The motivating commitment is that what consumers do not need to know, they should not be in a position to *depend* on, and the mechanism is a controlled boundary filtering which facts cross. It has three commitments: a boundary drawn around a design decision likely to change (or a secret whose exposure would invite unwanted dependencies); a contract — the public surface — promising stable behavior regardless of how the concealed side evolves; and a controlled-access policy governing how, or whether, any concealed fact may cross, through deliberate handles (parameters, return values, queries) and no others. Crucially, the concealment is *purposive*: secrecy is only the means, and freedom-to-change is the end. Equivalently, the prime is about controlling the *scope of dependency*, with concealment as the lever — an object hides fields behind methods, an institution hides deliberations behind decisions, a body hides biochemistry behind hormones.

 

Information hiding is the structural pattern of deliberately concealing some internal facts about a system behind a stable public surface, so that consumers of the system interact only with the surface and remain unable — and unconcerned — about what lies behind. The motivating commitment is that what consumers do not need to know, they should not be in a position to depend on, and the mechanism is a controlled boundary that filters which facts cross. The pattern has three structural commitments. A boundary between concealed-side and visible-side facts, drawn around a design decision likely to change or a secret whose exposure would invite undesirable dependencies. A contract — the public surface — promising stable behavior on the visible side regardless of how the concealed side evolves. And a controlled-access policy governing how, or whether, any concealed fact may cross the boundary, through deliberate handles (parameters, return values, queries) and no others. Information hiding is not secrecy for its own sake; the concealment is purposive, preserving the freedom to change the concealed side without breaking consumers — secrecy is the means, freedom-to-change is the end. Equivalently, the prime is about scope-of-dependency control, with concealment as the lever. The pattern is symmetric over many substrates — an object hides fields behind methods, an institution hides deliberations behind decisions, a body hides biochemistry behind hormones — and in each, the moves of boundary, contract, and controlled crossing recur. Many instances import institutional or normative framing (secrecy, confidentiality, privilege), which is why the prime reads as framed even though its skeleton is structural.

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

One-hop neighborhood: parents above, mutual partners to the right, children below.Information Hidingcomposition: BoundaryBoundarysubsumption: AbstractionAbstractioncomposition: Abstract Data TypeAbstractData Type

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 HidingBoundary

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.