Objektpool
Der Objektpool (engl. object pool pattern) ist ein in der Softwareentwicklung eingesetztes Entwurfsmuster, genauer ein Erzeugungsmuster. Es wird dazu verwendet, Objekte nach initialer Erzeugung (im Objektpool) vorzuhalten, sofern dies sinnvoller ist als sie bei jeder Verwendung neu zu erzeugen. Dies trifft vor allem auf häufig benötigte und aufwendig zu erstellende Objekte zu. Die Objekte werden dann im Objektpool abgelegt und bei Bedarf durch diesen wieder zur Verfügung gestellt.[1]
Vorteile
BearbeitenDie Wiederverwendung bereits erzeugter Objektinstanzen reduziert potentiell den Aufwand (Zeit / Rechenleistung) zur Objekterzeugung.[2]
Nachteile
BearbeitenDie Wiederverwendung bereits genutzter Objekte erhöht die Komplexität des Programms.[3]
Verwendung
BearbeitenDas Entwurfsmuster Objektpool wird häufig genutzt, vor allem im Bereich von Thread-Pooling und Connection-Pooling (z. B.: Datenbankverbindungen) besteht oft hohes Potenzial für Performancegewinne, da das Erstellen eines Threads und der Verbindungsaufbau zu einem Datenbankmanagementsystemen relativ 'aufwendig' sind. Jedoch ist dies nicht für alle Objekttypen der Fall, speziell bei wenig komplexen Objekten ist in aktuellen Laufzeitumgebungen das Neuerstellen von Objekten 'günstiger' als aufwendige Pooling-Mechanismen.
Beispiel
BearbeitenAls Beispiel für einen Objektpool kann eine Bibliothek dienen. Ein Kunde (Client) leiht sich von der Bibliothek (Objektpool) ein Buch (Objekt). Nachdem er es gelesen hat, gibt er das Buch an die Bibliothek zurück. Dadurch steht es für weitere Kunden zur Verfügung. Das Buch muss nicht für jeden Lesevorgang neu gedruckt werden.
Abgrenzung von Objektpool zu Cache
BearbeitenEin Objektpool speichert die Objekte ohne Zustand, dadurch sind sie bei jedem Abruf im Ausgangszustand. Beim Caching hingegen werden die Objekte inklusive Zustand gespeichert.
Weblinks
BearbeitenEinzelnachweise
Bearbeiten- ↑ Joachim Goll, Manfred Dausmann: Architektur- und Entwurfsmuster der Softwaretechnik. 4. Auflage. Springer Vieweg Verlag, Wiesbaden 2013, ISBN 978-3-8348-2432-5, S. 78.
- ↑ Karl Eilebrecht, Gernot Starke: Patterns kompakt. 4. Auflage. Springer Vieweg Verlag, Berlin 2013, ISBN 978-3-642-34717-7, S. 44.
- ↑ Karl Eilebrecht, Gernot Starke: Patterns kompakt. 4. Auflage. Springer Vieweg Verlag, Berlin 2013, ISBN 978-3-642-34717-7, S. 44–45.