Java Reference
In-Depth Information
Die Methoden gibObjekt() und objektZurueckgeben() sind mit dem Zusatz
{guarded} versehen, um anzudeuten, dass die beiden Methoden threadsicher aus-
geführt werden müssen.
Damit das Entwurfsmuster Objektpool sinnvoll eingesetzt werden kann, sollten einige
Regeln eingehalten werden. Diese Regeln lauten:
x Regel 1: Objekte sollten zurückgesetzt werden.
Enthalten die vom Pool verwalteten Objekte Daten, die durch die Clients verändert
werden können, so müssen sie in einen definierten Ursprungszustand zurück-
versetzt werden. In der Regel geschieht dies beim Zurücklegen in den Pool.
x Regel 2: Der Pool sollte eine minimale und eine maximale Größe haben.
Der Pool darf nicht zu klein sein, da die Clients sonst unter Umständen lange warten
müssen, ehe sie ein Objekt aus dem Objektpool erhalten. Ein zu großer Pool ver-
schwendet Ressourcen. Der Pool könnte sich im Idealfall der jeweiligen Situation
anpassen, d. h. dynamisch neue Objekte zur Laufzeit anlegen oder bereits be-
stehende Objekte zur Laufzeit löschen.
x Regel 3: Der Pool sollte zu Beginn mit einer gewissen Mindestanzahl von Ob-
jekten gefüllt sein.
Hat der Objektpool eine anfängliche Mindestanzahl an bereits initialisierten Objek-
ten, so kann vermieden werden, dass beim Starten des Objektpools ein Client auf
die Erzeugung der ersten initialisierten Objekte warten muss.
4.21.3.2 Teilnehmer
Das Entwurfsmuster Objektpool umfasst drei verschiedene Klassen:
Objektpool
Diese Klasse verwaltet die Instanzen der Klasse WiederverwendbareKlasse . Ein
Client kann nur über die einzige Instanz vom Typ Objektpool Objekte vom Typ
WiederverwendbareKlasse erhalten.
Wiederverwendbare Klasse
Instanzen von diesem Typ sind aufwendig zu erstellen. Ein Client wird ein Objekt
dieser Klasse nicht zerstören, sondern nach Verwendung dieses wieder in den Pool
zurücklegen.
Client
Die Klasse Client und ihre Objekte stehen stellvertretend für alle möglichen Objekte,
die den Objektpool verwenden, um an Instanzen des Typs Wiederverwendbare-
Klasse zu gelangen.
4.21.3.3 Dynamisches Verhalten
Mit dem Aufruf Objektpool.gibPoolinstanz() erhält ein Client eine Instanz des
Pools. Neben der Klassenmethode gibPoolinstanz() verfügt der Objektpool noch
über zwei weitere Methoden, die der Client verwenden kann:
Search WWH ::




Custom Search