Universität Ulm,
Fakultät für Mathematik und Wirtschaftswissenschaften,
SAI
WS 2000/01 || Entwicklung objekt-orientierter Bibliotheken || Beispiele
Collections-9
- Collections
-
Diese Version wurde im Vergleich zu einem
früheren Beispiel
um eine
Remove-Operation
erweitert, bei der bemerkenswerterweise nur eine Kollektion
und das daraus zu entfernende Objekt anzugeben sind.
Darüber hinaus wurden die Basistypen geändert:
Überall wird statt
Objects.Object
nun
Disciplines.Object
verwendet.
- LinearLists
-
Bei dieser Implementierung ist die Unterstützung von
Remove
hinzugekommen.
Wenn nur die Datenstruktur der
vorherigen Implementierung
zur Verfügung stehen würde,
müßte ein Großteil der Liste durchlaufen werden,
um das daraus zu entfernende Objekt zu entdecken.
Auf Basis von
Disciplines
wird hier eine im Normalfall wesentliche effizientere Strategie verfolgt:
Mit Hilfe einer objektspezifischen Disziplin eröffnet
LinearLists
eine neue Sicht auf die Objekte, die es in Listen aufnimmt.
Diese neue Sicht besteht aus einer Liste von Mitgliedschaften des
Objekts.
Da typischerweise ein Objekt in deutlich weniger Listen
enthalten ist, als die Listen üblicherweise lang sind,
dürfte es mit fast konstantem Aufwand sofort gelingen,
die Mitgliedschaft in Form des zugehörigen Linkable-Records
zu finden und aus der jetzt natürlich doppelt
verketteten Liste zu entfernen.
- TestLists
-
Ein zugehöriges Testmodul.
Die Quellen stehen als Shell-Archiv zur Verfügung.
WS 2000/01 || Entwicklung objekt-orientierter Bibliotheken || Beispiele
Andreas Borchert, 20. November 2000