Ada bietet, wie wir bisher gesehen haben, sehr flexible Möglichkeiten, um Datenstrukturen zu definieren. Das heißt, wir sind in der Lage, die Werte, die ein Objekt eines Typs annehmen kann, sehr exakt zu spezifizieren. Um jedoch die Operationen festzulegen, die auf ein Objekt ausgeübt werden können, bedarf es zusätzlicher Unterstützung. Meist besteht dabei in programmiersprachlicher Hinsicht das Problem vor allem darin, zu verhindern, daß hinterrücks Komponenten des Objektes (meist unabsichtlich) verändert werden, womit die Konsistenz des gesamten Objektes zerstört wird. Es ist daher erforderlich, auf Programmiersprachen-Niveau Sprachmittel zur Verfügung zu stellen, die solche ,,Untergriff-Methoden``verhindern.
Ada kennt sogenannte private Typen , um dieses Prinzip des ,,information hiding's`` zu verwirklichen. Dabei werden die Einzelheiten der Implementierung verborgen und die Abstraktion im Problembereich in den Vordergrund gestellt. Wenn man zum Beispiel daran denkt, einen Stack zu realisieren, so sind vor allem die Operationen Push und Pop wichtig, nicht jedoch wie diese konkret implementiert werden. Der Stack kann dann konkret als Array oder als verkettete Liste realisiert werden, ohne die, davon unabhängig definierten Operationen zu beeinflussen.
Um ein vernünftiges Beispiel angeben zu können, müssen wir leider einen kleinen Vorgriff tätigen. Ein privater Typ muß nämlich in eine Paket-Struktur eingeschlossen werden. Wie solche Strukturen genauer aussehen, werden wir in Kapitel 7 sehen. Wir wählen als Beispiel unseren oben eingeführten Typ Datum (siehe Seite ). Es ist leicht zu sehen, daß bei Beibehaltung des Record-Typs niemand daran gehindert werden kann, etwa das Datum 31. Februar 1991 darzustellen. In Ada kann das unterbunden werden, indem wir Datum als privaten Typ vereinbaren.
package Datum_Manager is
Die benötigten Operation, wie etwa Setzen und Lesen des Datums, sind im Anschluß an die Definition von Datum zu spezifizieren, die Implementation erfolgt dann in einem zugehörigen Package-Body.
Abschließend sei darauf hingewiesen, daß MODULA-2 ein ähnliches Sprachkonstrukt unterstützt, die sogenannten opaquen Typen .
Johann Blieberger