Eigenständiger BegriffPrinzipKapitel I · Prinzipien · Baustein 6 von 8

Information Hiding

Die Grenze folgt den wahrscheinlichen Änderungsgründen und schützt interne Repräsentation.

  1. EntscheidungKann sich intern ändern.
  2. VertragMacht Fähigkeiten verfügbar.
  3. AufruferNutzt nur den Vertrag.

Einordnung

Warum das wichtig ist

Änderbare Entwurfsentscheidungen hinter einem schmalen Modulvertrag verbergen.

Entwurfsprinzip für fachliche und technische Modulgrenzen.

Shop-Beispiel · Zuordnung

Vertrag und interne Entscheidung

Der Beispielshop bleibt ein modularer Monolith mit sieben Modulen und gemeinsamer Auslieferung.

So liest du das Bild

  1. Entscheidung Kapsel
  2. Vertrag Schnittstelle
  3. Aufrufer Abhängigkeit
Vertrag und interne Entscheidung
AspektSichtbarkeitÄnderungsort
SchnittstelleFachliche OperationVertrag bleibt stabil
ImplementierungInterne StrukturModul kann sie ändern
Die Matrix vergleicht sichtbare Fähigkeit und verborgene Umsetzung.

Nutzen & Grenzen

Hilft, wenn

  • Die Entscheidung betrifft eine interne Repräsentation, die sich voraussichtlich ändern kann.
  • Mehrere Aufrufer benötigen dieselbe fachliche Fähigkeit, nicht denselben Speicherzugriff.

Grenzen

  • Eine Schnittstelle verbirgt eine Entscheidung nur, wenn sie keine internen Details durchreicht.
  • Zu viele kleine Grenzen erzeugen zusätzlichen Koordinationsaufwand und erschweren Änderungen.

In der Praxis

  1. Liste die Entscheidungen des Moduls auf und markiere diejenigen, die sich aus fachlichen oder technischen Gründen ändern könnten.
  2. Entwirf den kleinsten Vertrag, über den andere Module eine Fähigkeit nutzen können; vergleiche ihn mit den tatsächlich nötigen Aufruferfragen.
  3. Ändere eine interne Repräsentation probeweise und verfolge, welche Aufrufer Anpassungen benötigen. Ziehe die Grenze dort nach, wo unnötige Abhängigkeiten sichtbar werden.
Ausführliche Erklärung lesen

Information Hiding stammt aus Parnas’ Modulkriterien: Zerlege ein System entlang schwieriger oder veränderlicher Entwurfsentscheidungen. Eine Schnittstelle beschreibt die Leistung, die Aufrufer benötigen; interne Datenstrukturen und Abläufe bleiben innerhalb des Moduls. So kann eine Implementierung wechseln, solange ihr Vertrag und beobachtbares Verhalten erhalten bleiben.

Eine Änderung an der Tabelle bleibt innerhalb des Bestellmoduls. Modulgrenzen ordnet die Zuständigkeit ein; Dependency Inversion erklärt die Richtung stabiler Verträge.

Selbst prüfen

Teste dich in drei Stufen

  1. AblesenIm Bild nachsehen

    Welche Seite der Grenze enthält die veränderliche Tabellenstruktur?

    Lösung mit Begründung ansehen

    Die interne Implementierung des Bestellmoduls.

  2. AnwendenAuf eine neue Lage übertragen

    Wie kann Zahlung eine Bestellung bestätigen lassen?

    Lösung mit Begründung ansehen

    Über eine fachliche Operation des Bestellmoduls statt über dessen Tabellen.

  3. BewertenEine Alternative abwägen

    Woran erkennst du, dass ein Vertrag interne Entscheidungen leakt?

    Lösung mit Begründung ansehen

    Aufrufer müssen Speicherfelder oder interne Abläufe kennen, um die Fähigkeit zu nutzen.

Weiter im Lernpfad

Als Nächstes in Prinzipien & Grenzen: Dependency Inversion.