Universität Ulm, Fakultät für Mathematik und Wirtschaftswissenschaften, SAI

WS 97/98 || Entwicklung objekt-orientierter Bibliotheken || Beispiele

Collections-9


TestLists Lists Collections

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.

Lists
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 Lists 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 97/98 || Entwicklung objekt-orientierter Bibliotheken || Beispiele

Andreas Borchert, 12. November 1997