SAI ||
Wintersemester 2000/01 ||
Entwicklung objekt-orientierter Bibliotheken ||
Übungen
Übungen zu Entwicklung objekt-orientierter Bibliotheken
Blatt 5 (21. 11. - 28. 11. 2000)
Aufgabe 6 (5 Punkte)
Erweitern Sie die Abstraktion Collections aus dem
Beispiel Collections-9
um eine optionale Prozedur IsMember, mit der
festgestellt werden kann, ob ein Objekt in einer
bestimmten Kollektion enthalten ist:
PROCEDURE IsMember(collection: Collection;
object: Disciplines.Object) : BOOLEAN;
Unterstützen Sie diese neue Operation in LinearLists
unter Ausnutzung der Mitgliedschaftslisten, die für
die effiziente Ausführung der Remove-Operation gepflegt
werden.
Aufgabe 7 (5 Punkte)
Realisieren Sie in Oberon eine Sekundärabstraktion
AgingObjects, die es
erlaubt, beliebigen Objekten, die eine Erweiterung von
Disciplines.Object
sind, eine Altersreihenfolge zuzuordnen. Dazu sollen die beiden Methoden
Touch und Newer dienen:
-
Touch kann beliebig oft auf jedes Objekt angewendet werden und sorgt
dafür, daß es ab sofort als das "neueste" gilt.
-
Newer erhält zwei
Objekte und liefert genau dann TRUE, wenn Touch
für das erste Objekt zuvor
irgendwann aufgerufen wurde und seit dem letzten Mal, daß dies geschah,
nicht für das zweite.
SAI ||
Wintersemester 2000/01 ||
Entwicklung objekt-orientierter Bibliotheken ||
Übungen
Andreas Borchert, November 2000