ObjektpoolDer 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] VorteileDie Wiederverwendung bereits erzeugter Objektinstanzen reduziert potentiell den Aufwand (Zeit / Rechenleistung) zur Objekterzeugung.[2] NachteileDie Wiederverwendung bereits genutzter Objekte erhöht die Komplexität des Programms.[3] VerwendungDas 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. BeispielAls 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 CacheEin Objektpool speichert die Objekte ohne Zustand, dadurch sind sie bei jedem Abruf im Ausgangszustand. Beim Caching hingegen werden die Objekte inklusive Zustand gespeichert. Weblinks
Einzelnachweise
|