Java Reference
In-Depth Information
Hier das Protokoll des Programmlaufs:
Neue Taxizentrale mit 2 verwalteten Taxis erzeugt.
In Taxi 1 ist Passagier Hans eingestiegen.
In Taxi 2 ist Passagier Anna eingestiegen.
Für Passagier Klaus ist kein freies Taxi vorhanden.
Aus Taxi 1 ist Passagier Hans ausgestiegen.
In Taxi 1 ist Passagier Klaus eingestiegen.
Aus Taxi 2 ist Passagier Anna ausgestiegen.
Aus Taxi 1 ist Passagier Klaus ausgestiegen.
4.21.4
Bewertung
4.21.4.1 Vorteile
Die folgenden Vorteile werden gesehen:
x Wird der Mechanismus eines Objektpools eingesetzt, so erspart man sich durch die
Wiederverwendung von Objekten ein ständiges Erzeugen dieser Objekte zur Lauf-
zeit. Die Ressourcen werden geschont.
x Durch Beobachtung des Pools können Rückschlüsse auf die aktuelle Systemlast
gezogen werden.
4.21.4.2 Nachteile
Folgende Nachteile können durch den Einsatz eines Objektpools entstehen:
x Die Rückgabe der Objekte ist ein zentrales Problem dieses Musters. Der Pool ist
auf den "guten Willen" der Clients angewiesen, dass diese ein Objekt nach Benut-
zung auch tatsächlich wieder zurückgeben. Besonders im Falle von Ausnahmen
(Exceptions) kann leicht vergessen werden, ein Objekt an den Pool zurückzugeben.
x Die wiederzuverwendenden Objekte müssen sich vor ihrer Wiederverwendung im-
mer im gleichen Zustand befinden.
x In nebenläufigen Umgebungen synchronisiert der Pool die nebenläufigen Einheiten.
Dies kann zu Deadlocks führen.
4.21.5
Einsatzgebiete
Das Entwurfsmuster eines Objektpools wird häufig bei Datenbankzugriffen verwendet,
um Verbindungen zur Datenbank zwischenzuspeichern und wiederzuverwenden. Es
wird dann in der Regel von einem Connection Pool gesprochen. Dieser Connection
Pool ist insbesondere auch bei Web-Technologien sinnvoll, da hierbei Verbindungen
oftmals nur für eine kurze Dauer genutzt werden [db2cop].
Bei parallelen Systemen werden oft sogenannte Thread Pools eingesetzt. So müssen
Threads nicht ständig neu erstellt werden, sondern sie werden einfach wiederverwen-
Search WWH ::




Custom Search