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

WS 2000/01 || Entwicklung objekt-orientierter Bibliotheken || Beispiele

Abstraktionen auf Basis von Schnittstellenrecords


Die vorgestellten Techniken der vorherigen Beispiele auf Basis von Aufträgen sind zwar recht flexibel bis zur Unterstützung der Delegation selbst unbekannter Operationen, jedoch verbleiben einige Nachteile:

Diese Probleme lassen sich auf Basis von Schnittstellenrecords lösen, wie die hier zusammengestellten Beispiele zeigen:

Collections-4
Diese Fassung entspricht in ihrer Einfachheit der ersten Version auf Basis von Aufträgen. Bemerkenswert ist hier insbesondere die Vereinfachung von LinearLists, da hier der Handler völlig wegfällt.
Collections-5
Analog zum ersten Erweiterungsbeispiel auf Basis von Aufträgen zeigt dieses Beispiel, daß auch auf Basis von Schnittstellenrecords Erweiterungen (wie z.B. OrderedCollections) problemlos möglich sind.
Collections-6
Die Vorteile beider Techniken können kombiniert werden, so daß für die Basisabstraktion ein Schnittstellenrecord verwendet wird, während die Erweiterungen Aufträge verwenden. Auf dieser Basis sind wieder Delegation von unbekannten Operationen möglich wie dieses Beispiel analog zum vorherigen Beispiel zeigt.
Collections-7
Bei der Verwendung von Schnittstellenrecords ist es möglich und sinnvoll, das Konzept der Fähigkeiten einzuführen und so einige wichtige Varianten gleich in die Basisabstraktion zu integrieren. Dieses Beispiel zeigt wie OrderedCollections in Collections integriert werden kann, ohne daß alle Kollektionen geordnet sein müssen.
Collections-8
Dieses Beispiel zeigt, daß die Basisabstraktion gewisse Operationen selbst definieren kann (z.B. auf Basis anderer Operationen), die bei Bedarf (z.B. wenn Effizienzverbesserungen möglich sind), von den Implementierungen überdefiniert werden können.

WS 2000/01 || Entwicklung objekt-orientierter Bibliotheken || Beispiele

Andreas Borchert, 13. November 2000