Weitere aktuelle Java-Titel finden Sie bei dpunkt.
 Inhaltsverzeichnis   Auf Ebene Zurück   Seite Zurück   Seite Vor   Auf Ebene Vor   Eine Ebene höher   Index


16.2.4

Anonyme Implementierungen


Über Factory-Methoden der Klasse java.util.Collections können anonyme Implementierungen von Kollektionen erzeugt werden. Das sind Implementierungen eines Collection-Interfaces, deren Klassendefinitionen nicht als public deklariert sind. Über diese Methoden ist es möglich, von einem Objekt einer beliebigen Klasse, die eines der Collection-Interfaces implementiert, eine Version zu erhalten, die unveränderbar bzw. synchronisiert ist. Hierfür stellt die Klasse Collections die Methoden synchronizedXXX() und unmodifiableXXX() zur Verfügung, wobei XXX für eines der Collection-Interfaces steht. Als Parameter bekommen die Methoden jeweils ein Exemplar einer vorhandenen Implementierung übergeben. Als Ergebnis wird die synchronisierte bzw. unveränderbare Implementierung des übergebenen Exemplars zurückgeliefert.

Um z. B. eine synchronisierte Implementierung einer TreeMap zu erhalten, müssen folgende Zeilen Code ausgeführt werden:
  SortedMap sm;
  sm = Collections.synchronizedSortedMap(new TreeMap());
  // Die Aufrufe an sm sind nun synchronisiert
Die Methoden der Klasse Collections sind alle statisch, so dass sie direkt über den Klassennamen aufgerufen werden können. Die erweiterte Funktionalität wird bei dieser Vorgehensweise durch so genannte Wrapper-Implementierungen zur Verfügung gestellt. Für jedes Interface ist eine Wrapper-Implementierung sowohl für die Synchronisation als auch für die unveränderbare Variante enthalten. Beim Aufruf von synchronizedXXX() bzw. unmodifiableXXX() wird zunächst ein Exemplar der passenden Wrapper-Implementierung erzeugt, das in einem Datenelement einen Verweis auf das übergebene Original-Exemplar speichert (im obigen Beispiel ein Exemplar der Klasse TreeMap). Die Wrapper-Implementierung wird nun anschließend von synchronizedXXX() bzw. unmodifiableXXX() zurückgeliefert. Beim Aufruf der Methoden stellt nun der Wrapper zunächst die neue Funktionalität zur Verfügung (z. B. Synchronisation) und leitet danach den Aufruf an die Original-Implementierung weiter.


 Inhaltsverzeichnis   Auf Ebene Zurück   Seite Zurück   Seite Vor   Auf Ebene Vor   Eine Ebene höher   Index

Copyright © 2002 dpunkt.Verlag, Heidelberg. Alle Rechte vorbehalten.