SAI ||
Wintersemester 1997/98 ||
Entwicklung objekt-orientierter Bibliotheken ||
Übungen
Übungen zu Entwicklung objekt-orientierter Bibliotheken
Blatt 7 (05. 12. - 12. 12. 1997)
Aufgabe 13 (8 Punkte)
Ergänzen Sie die Module
Dictionaries
und
Hashes
aus einer
Lösung
von
Aufgabe 10
um Ereignisse zur Ausnahmenbehandlung.
Im einzelnen sollen folgende Bedingungen erkannt und sowohl
mit einem BOOLEAN-Resultat als auch einem objektbezogenen
Ereignis angezeigt werden:
-
Versuch, ein Objekt unter einem bereits vorhandenen Schlüssel einzufügen;
-
Versuch, ein nicht vorhandenes Objekt zu löschen.
-
Versuch, ein nicht vorhandenes Objekt zu finden.
Die entsprechenden Ereignistypen sollen zusammen mit der
Abstraktion definiert werden.
Aufgabe 14 (12 Punkte)
Modifizieren Sie die beiden Module des weiteren so, daß sie die
Abstraktion
Resources
wie folgt unterstützen:
-
Für jedes Dictionary führen
unreferenced-Ereignisse
automatisch zur Termination (dafür ist die Abstraktion zuständig).
-
Einzufügende Objekte sollten jetzt Erweiterungen von
Disciplines.Object
sein (bisher genügte
Objects.Object).
-
Ein Objekt, das terminiert, soll automatisch aus allen Hashes
entfernt werden, denen es angehört.
-
Die Mitgliedschaft eines Objektes in einem Hash wird als
heavyweight-Referenz
betrachtet.
-
Terminiert ein Hash, sollen diese Referenzen auf die Elemente
auch wieder aufgelöst werden.
Beachten Sie, daß die letzten drei Punkte sich auf die
Implementierung beziehen.
Testen Sie alle neuen Eigenschaften der Module mit einem kleinen
Programm.
Berücksichtigen Sie weiterhin die in der Vorlesung genannten
Konventionen der Ulmer Oberon-Bibliothek.
Erläuterungen zu Ereignissen und Objekt-Lebenszyklen finden Sie im
Vorlesungsskript
und den neuen Beispielen unter
"http://www.mathematik.uni-ulm.de/sai/ws97/oolib/zb/".
SAI ||
Wintersemester 1997/98 ||
Entwicklung objekt-orientierter Bibliotheken ||
Übungen
Martin Hasch, Dezember 1997