Skip to content

Information Hiding

Core Idea

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 behaviour 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.

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.

Structural Signature

a system with concealed internal factsa boundary separating concealed from visiblea stable public contract on the visible sidecontrolled crossings (named handles)the dependency-scope-control invariantthe leak / implicit-coupling failure mode

An arrangement is information hiding when the following hold:

  • A system with internal facts. A unit possessing internal state, decisions, or mechanism — some of which is volatile or sensitive.
  • A deliberately drawn boundary. A line separating concealed-side facts from visible-side facts, drawn around what is likely to change or what would invite undesirable dependence if exposed.
  • A stable public contract. A surface that promises fixed behaviour on the visible side regardless of how the concealed side evolves — the visible-side guarantee consumers may rely on.
  • Controlled crossings. A policy permitting concealed facts to cross only through explicit, named handles (parameters, queries, signals, receptors) and through no other channel.
  • The dependency-scope-control invariant. The purpose is not secrecy for its own sake but preserving freedom to change the concealed side: what consumers do not need to know, they must not be in a position to depend on. Concealment is the means; freedom-to-change is the end.
  • The leak / implicit-coupling failure mode. When consumers come to depend on concealed facts through unintended channels (timing, error detail, observable side effects), the boundary is violated de facto and the freedom-to-change it protected is lost.

These compose into one move: draw a boundary, expose a stable contract, permit only named crossings, and thereby cap each consumer's dependency at the size of the public surface rather than the system's internal complexity.

What It Is Not

  • Not information_asymmetry. Asymmetry is a descriptive state — one party knows what another does not, often arising naturally and exploited strategically; information hiding is a deliberate design act that creates a boundary to cap dependency, with concealment as a means to freedom-to-change.
  • Not access_control. Access control governs who is authorized to reach a resource; information hiding governs what is even visible to depend on. One gates permitted access to known things; the other removes things from the dependency surface entirely.
  • Not abstraction. Abstraction omits detail to expose essentials; information hiding conceals specific facts behind a contract to prevent dependency on them. Abstraction is about what you attend to; hiding is about what consumers are prevented from coupling to.
  • Not signaling. Signaling deliberately reveals (costly, hard-to-fake) information to influence beliefs; information hiding deliberately withholds information to prevent coupling. The two move in opposite directions across the boundary.
  • Not secrecy for its own sake. The concealment is purposive — preserving freedom to change the concealed side without breaking consumers. Where concealment protects no design freedom and serves only to withhold, it is secrecy, not information hiding.
  • Common misclassification. Calling any private field or restricted resource "information hiding." Catch it by asking whether a stable contract shields consumers from a concealed design decision likely to change; mere privacy without a contract-and-change-freedom rationale is access control or secrecy.

Broad Use

The skeleton recurs across substrates. In software engineering it is Parnas's module decomposition, encapsulation in object-oriented programming, API design where only the documented interface is the contract, opaque handle types, and the principle of least privilege. In organisations and governance it is cabinet confidentiality (internal disagreement hidden behind a unified decision), peer-review anonymity, the corporate veil, trade-secret protection, and classified-document compartmentalisation. In diplomacy it is back-channel negotiations behind public positions, intelligence sources-and-methods protection, and deliberate ambiguity in nuclear posture. In law it is attorney-client privilege, physician-patient confidentiality, and the rule against character evidence. In biology it is the cell membrane as a controlled interface around concealed internal biochemistry, the blood-brain barrier, and hormones as the public contract over hidden organ-level state. In cognition it is implicit versus explicit memory, the unconscious consulted through limited channels, and front-stage/back-stage performance. In game theory it is private hands, private types, and private valuations. In cryptography it is zero-knowledge proofs (prove a property without revealing the witness), secure multi-party computation, and differential privacy. In architecture it is facades concealing structural systems and service corridors behind finished walls. These instances share the same three commitments and the same design questions — where to draw the boundary, what contract to expose, what handles to permit.

Clarity

The prime makes visible the distinction between accidental and essential visibility. Once a practitioner recognises information hiding, the question shifts from "what does X reveal?" — a forensic question — to "what should X reveal, given what we want to be free to change?" — a design question — and the boundary, once named, can be moved deliberately rather than by accident. The pattern also exposes the implicit-coupling failure mode: when consumers come to depend on a concealed fact they were never promised, the boundary has been violated de facto, and any change to the concealed side breaks them. Naming this failure mode supplies a vocabulary ("with sufficient users, all observable behaviours become part of the contract") for a phenomenon common to APIs, bureaucracies, and biological systems. The clarifying force is to make the boundary, the promised contract, and the permitted crossings explicit, so that what is concealed is concealed on purpose and what is exposed is exposed on purpose.

Manages Complexity

Information hiding replaces whole-system understanding with interface understanding. The consumer does not model the concealed side; they understand only the contract, while the producer stays free to change the concealed side within it. The complexity budget shifts from "n × m couplings between n consumers and m internal facts" to "n × (size of contract)" — a quadratic-to-linear simplification at the system level. The pattern is also the substrate of safe parallel evolution: two systems with information hiding at their boundary can evolve independently as long as the contract holds, which is what makes modular systems composable across time and is the structural reason large software, large organisations, and large bodies can evolve at all. The management payoff is that the number of things any consumer must track collapses from the internal complexity of the system to the size of its public surface, and the producer's freedom to change is bounded by, and only by, that same surface.

Abstract Reasoning

The prime enables substrate-independent questions. Where do we draw the boundary? — around what is most likely to change, most invites dependence, most needs to be free to evolve. What is the contract? — what we promise, and what we explicitly refuse to promise. What are the controlled crossings? — the named handles, and what we deliberately do not expose. What are the leaks? — timing, side effects, error messages, observable performance, the accidental-contract channels. Who can break the contract? — privileged consumers, internal parties, adversaries. And what is the cost of the boundary? — translation overhead, lost optimisations, rigidity against legitimate exceptions. These transfer cleanly across API design, organisational charter design, biological-system modelling, and cryptographic protocol. The reasoner asks, of any system-with-consumers: what is concealed, what is promised, what may cross, and where does the concealed side leak through unintended channels?

Knowledge Transfer

The intervention catalog carries portable moves. Move the boundary: when the concealed side stabilises, expose more of it; when the visible side over-promises, retreat. Plug the leaks: identify accidental channels (timing, error detail, side effects) and either close them or fold them into the contract. Sanction the privilege: when some consumers must see across the boundary, give them an explicit privilege rather than an undocumented dependency. Sign the contract: cryptographic or semantic versioning, audited specifications, oath-keeping institutions make the contract robust enough to depend on. And hide more, hide less: the dial between transparency and opacity is itself a design knob, since too much hiding strangles legitimate inspection and too little ossifies the system. The role mappings are direct: boundary ↔ module edge / cabinet door / cell membrane / proof relation, contract ↔ API / unified decision / hormonal signal / verification bit, controlled crossing ↔ documented method / ministerial statement / receptor / disclosed witness-property, leak ↔ timing / error detail / observable side effect. A payment processor exposing charge(amount, card_token) hides the network choice (freeing it to renegotiate deals), promises idempotency (the load-bearing contract), and exposes a small set of decline reasons — and the same three-decision pattern recurs in cabinet confidentiality, in cell biology, and in zero-knowledge proofs. A software architect who grasps information hiding reads a diplomatic-protocol case study and sees the contract design; a cryptographer reads a hormonal-signalling paper and sees the same boundary discipline. Note: this prime's nearest existing neighbour is information_asymmetry at similarity 0.9738, and its second-nearest is information_cascade at 0.9327 — both well above the 0.85 duplicate-risk threshold. The two are closely linked (information hiding is the designed asymmetry; information asymmetry is the as-found one), and this pair warrants a deduplication or explicit-distinction decision in a later pass. Because the pattern carries Parnas-coined vocabulary and many instances import normative framing (privilege, confidentiality, secrecy), the transfer is partly recognition of a shared boundary discipline and partly the import of a software-design frame into institutional and biological substrates.

Examples

Formal/abstract

Take a hash-table module exposing only get, put, and delete as the rigorous instance, since Parnas's original argument is sharpest here. The system with internal facts is the implementation: the bucket array, the hash function, the collision-resolution scheme, the load-factor threshold that triggers a resize. The deliberately drawn boundary separates those volatile internals from the visible operations, drawn precisely around the design decisions most likely to change. The stable public contract is the behavioural promise: put(k,v) then get(k) returns v, in expected constant time — a guarantee that holds regardless of whether the internals later switch from open addressing to chaining, or from one hash function to another. The controlled crossings are exactly those three named handles and no others. The dependency-scope-control invariant is the whole point: because consumers cannot see the bucket layout, the maintainer is free to change it — swap the hash function, resize differently — without breaking a single caller. The prime's leak / implicit-coupling failure mode is what makes this rigorous rather than aspirational: if callers come to depend on iteration order (an unpromised, observable side effect of the bucket layout), then "with sufficient users, all observable behaviours become part of the contract" — the boundary is violated de facto, and the freedom it protected is lost. The intervention this enables: the maintainer either closes the leak (randomise iteration order so no one can depend on it) or folds it into the contract (promise insertion order, as some languages chose), converting an accidental dependency into a governed one.

Mapped back: The hash-table module instantiates every role — concealed internals, a boundary around likely-to-change decisions, a stable behavioural contract, three named crossings, dependency-scope control as the end, and iteration-order leakage as the failure mode — showing concealment as the means and freedom-to-change as the purpose.

Applied/industry

Consider cabinet confidentiality in government and the cell membrane in biology as two applied instances of the identical boundary discipline. In cabinet government the system with internal facts is the ministerial deliberation — the disagreements, the rejected options, the vote counts. The boundary is the cabinet door; the stable public contract is the doctrine of collective responsibility, under which the government presents a single unified decision that every minister publicly supports, regardless of how heated the concealed debate was. The controlled crossings are official statements and published decisions; the dependency-scope-control invariant is that outsiders depend only on the decision, leaving ministers free to argue internally without each disagreement becoming a public commitment. The leak failure mode is the unauthorised disclosure: when internal dissent leaks, parties come to depend on knowing who opposed what, and the freedom to deliberate candidly erodes. The cell membrane runs the same three commitments in a biological substrate: it conceals the internal biochemistry, exposes a stable contract through receptors (the only permitted crossings), and lets the cell's internal metabolism change freely so long as the receptor-level signalling contract holds — hormones serving as the public signal over hidden organ-level state. The shared intervention: draw the boundary around what must stay free to change, name the legitimate crossings, and treat any unpermitted channel as a leak to close or formalise.

Mapped back: Cabinet confidentiality and the cell membrane both run the prime end-to-end — concealed internals, a stable public contract, controlled crossings, dependency-scope control as the purpose, and leakage as the failure mode — differing from the software case only in that institutional and biological instances import normative framing (secrecy, signalling) atop the same structural skeleton.

Structural Tensions

T1 — Promised Contract versus De-Facto Contract. The boundary promises only the published surface, but consumers depend on whatever they can observe — timing, error detail, side effects, performance. The tension is that the effective contract is larger than the declared one. The failure mode is Hyrum's law: with enough users, every observable behaviour becomes a relied-upon contract, so a change to an unpromised internal (iteration order) breaks callers who were never entitled to depend on it, destroying the freedom the boundary was meant to protect. Diagnostic: enumerate what consumers can observe beyond the documented surface, and either close those channels or fold them deliberately into the contract.

T2 — Concealment versus Legitimate Inspection. Hiding controls dependency scope, but some parties have a genuine need to see across the boundary — debuggers, auditors, regulators, emergency overrides. The tension is that the same opacity that protects freedom-to-change also blinds legitimate inspection. The failure mode is a privileged consumer reaching across through an undocumented channel because no sanctioned one exists, creating exactly the implicit coupling the boundary forbade. Diagnostic: ask who legitimately needs to see inside, and grant an explicit, governed privilege rather than forcing them into a back channel that ossifies into a hidden dependency.

T3 — Boundary Stability versus Internal Evolution. The contract must stay fixed while the concealed side evolves freely — that asymmetry is the whole point. The tension is temporal: the longer the concealed side evolves, the more the original boundary placement may be wrong, drawn around decisions that have since stabilized or hardened around ones that turned volatile. The failure mode is a boundary frozen in place while reality shifts — over-promising a surface the internals can no longer cheaply honour, or hiding internals that have stabilized and could safely be exposed. Diagnostic: periodically ask whether the boundary still sits at the true change-frontier, and move it when the volatility profile shifts.

T4 — Hiding Cost versus Hiding Benefit. Concealment is not free: it adds translation overhead, forecloses cross-boundary optimizations, and imposes rigidity against legitimate exceptions. The tension is that more hiding buys more freedom-to-change but charges performance and flexibility. The failure mode runs both ways — over-hiding strangles the system with indirection and lost optimization (every access marshalled through a narrow handle), while under-hiding exposes internals that then accrete dependencies. Diagnostic: weigh the cost of the boundary (overhead, lost optimization, exception-handling rigidity) against the freedom it actually protects, and dial concealment to that balance rather than maximizing it.

T5 — Designed Asymmetry versus As-Found Asymmetry. Information hiding is a designed asymmetry — concealment chosen to control dependence — but it sits adjacent to information asymmetry, the as-found condition where one party simply knows more. The tension is scopal: the two are easily conflated (the prime's nearest neighbour at 0.9738 similarity), yet differ in whether the gap was engineered or merely exists. The failure mode is treating an exploitable as-found asymmetry as if it were a benign designed boundary — or designing a hiding boundary without realizing it manufactures an asymmetry others can exploit. Diagnostic: ask whether the concealment was chosen to control dependency or merely happens to exist, and govern the two differently.

T6 — Contract Trust versus Enforcement. The boundary works only if consumers can actually rely on the promised contract, which requires the contract to be enforced — by types, versioning, audits, oaths, or law. The tension is that a contract is only as strong as its enforcement mechanism, and a promise no one can verify is not a usable boundary. The failure mode is depending on a surface that the producer can silently violate — an unversioned API, an unaudited confidentiality pledge, an unenforceable privilege — so the dependency-scope guarantee evaporates the first time the contract is breached without consequence. Diagnostic: ask what makes the contract robust enough to depend on (semantic versioning, audit, fiduciary duty), and treat an unenforceable contract as no boundary at all.

Structural–Framed Character

Information Hiding sits squarely at the middle of the structural–framed spectrumframed, aggregate 0.5, with all five diagnostics reading exactly 0.5. The skeleton is genuinely structural — a boundary, a stable public contract, controlled crossings, and dependency-scope control as the end — but many of its instances import institutional and normative framing (secrecy, confidentiality, privilege), so every criterion sits at the half-mark rather than at either extreme.

Walk them, each landing at 0.5. Vocabulary travels: the boundary/contract/crossing skeleton is statable plainly and recurs in cell membranes and front-stage/back-stage performance, but its sharp form carries Parnas-coined module-decomposition vocabulary along. Evaluative weight: concealment is nominally neutral, yet "secrecy," "confidentiality," and "privilege" load a real normative tilt onto many instances — hiding can read as protective or as suspect. Institutional origin: the construct is software-coined, and many home cases (cabinet confidentiality, attorney-client privilege, trade secrets) are institutional, though the cell-membrane and cognitive cases pull back toward the structural. Human-practice-bound: the governance instances presuppose human practices (oaths, classification, fiduciary duty), but the biological boundary — a membrane exposing receptors over concealed biochemistry — runs with no human practice at all, balancing this to 0.5. Import vs. recognize: invoking "information hiding" of a diplomatic back-channel half-imports the decoupling frame and half-recognizes a boundary already there. Five half-points average exactly to the 0.5 aggregate and the framed label — a structural skeleton evenly wrapped in an institutional-normative frame, the textbook balanced hybrid.

Substrate Independence

Information Hiding is a moderately substrate-independent prime — composite 3 / 5 on the substrate-independence scale. The skeleton — a boundary, a stable public contract, controlled crossings, and dependency-scope control as the end — is genuinely structural, and the domain breadth is fair: it appears as Parnas module decomposition and encapsulation in software, as cabinet confidentiality and the corporate veil in governance, as back-channel negotiation in diplomacy, as attorney-client privilege in law, as the cell membrane and the blood-brain barrier in biology, as implicit-versus-explicit memory in cognition, as private hands and types in game theory, and as zero-knowledge proofs and differential privacy in cryptography. What pins the composite to the middle, and what the structural-abstraction and transfer bands honestly record, is that the term is Parnas-coined and many of its home instances import institutional or normative framing — secrecy, confidentiality, privilege — so applying the prime to a diplomatic back-channel half-imports a software-design decoupling frame rather than reading a neutral pattern off the situation. The cell-membrane case (a boundary exposing receptors over concealed biochemistry, running with no human practice) does anchor the pattern in a biological substrate, which keeps it from sliding lower. The transfer is correspondingly partial — a real boundary-and-contract discipline genuinely recognized across substrates, but carried with a CS-design frame and tangled with the as-found neighbour information_asymmetry (its nearest embedding neighbour at 0.97). Fair breadth and a genuine structural core with a frame-laden, normatively-tinged ceiling on abstraction and transfer give a well-justified 3.

  • Composite substrate independence — 3 / 5
  • Domain breadth — 4 / 5
  • Structural abstraction — 3 / 5
  • Transfer evidence — 3 / 5

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

Neighborhood in Abstraction Space

Information Hiding sits in a moderately populated region (43rd percentile for distinctiveness): it has near-neighbors but no dense thicket of synonyms.

Family — Boundaries, Containment & Isolation (12 primes)

Nearest neighbors

Computed from structural-signature embeddings · 2026-06-14

Not to Be Confused With

The closest and most dangerous confusion is with information_asymmetry, the prime's nearest embedding neighbour. They concern the same raw fact — one party knows something another does not — but they are different kinds of claim about it. Information asymmetry is descriptive and often as-found: it names a condition in which knowledge is unequally distributed, frequently arising on its own and analysed for how it can be exploited (adverse selection, moral hazard, bargaining advantage). Information hiding is prescriptive and engineered: it is the deliberate act of creating a boundary so that consumers cannot depend on what lies behind it, in order to preserve the freedom to change the concealed side. The crucial asymmetry between the two is purpose and agency. Information hiding manufactures an asymmetry on purpose, as a means to an end (decoupling); information asymmetry merely obtains, and its analysis is about consequences, not design. The practical danger of conflating them runs both ways: treating an exploitable as-found asymmetry as if it were a benign designed boundary (missing the strategic risk), or building a hiding boundary without noticing it has manufactured an asymmetry that others can now exploit. The discriminating question is whether the knowledge gap was chosen to control dependency or simply happens to exist.

It is also distinct from access_control, with which it is routinely fused in practice (private fields, permission systems). Access control answers who is allowed to reach a known resource; information hiding answers what is even on the dependency surface to be reached. The difference is whether the thing is visible-but-gated or invisible. A private field protected by access control still exists in the consumer's mental model — they know it is there and are merely forbidden to touch it; a truly hidden design decision is one consumers cannot couple to because they cannot see it at all. The decoupling payoff — freedom to change the concealed side without breaking anyone — comes specifically from invisibility, not from permission gating. Treating access control as information hiding yields boundaries that gate access while still leaking the existence and shape of internals, so consumers form dependencies the contract never meant to permit.

A third confusion is with abstraction. Both present a simplified surface over a complex interior, but they are motivated differently and can diverge. Abstraction selects which details to attend to, exposing the essential and suppressing the incidental for comprehension. Information hiding selects which details consumers are prevented from depending on, drawing the boundary specifically around decisions likely to change. A well-chosen abstraction often hides the right things, but the two criteria are not the same: an abstraction can faithfully expose a stable essence that is also a volatile implementation detail, and a hiding boundary can conceal something inessential precisely because it is unstable. Reading information hiding as "just abstraction" loses the change-protection rationale — the whole reason the boundary is drawn where it is.

For a practitioner the unifying point is that information hiding is defined by purposive concealment in service of decoupling. Information asymmetry lacks the purpose (it is a state, not a design); access control gates visible things rather than making them invisible; abstraction selects for comprehension rather than for change-protection. Keeping the boundary-plus-stable-contract-plus-change-freedom rationale in view is what separates real information hiding from each of these adjacent notions.

Solution Archetypes

No catalogued solution archetypes reference this prime yet.