Muster: Flyweight
Fliegengewicht [Bearbeiten]
Das Fliegengewicht (engl. flyweight) dient dazu eine große Anzahl an Objekten zu verwalten, ohne eine Instanz von jedem Einzelnen zu erstellen.
Zweck [Bearbeiten]
Um von einer Klasse nicht unendlich viele Objekte mit ähnlichen Zuständen erzeugen zu müssen, werden die Instanzen in einem Pool gehalten von welchem auf Nachfrage Referenzen zurückgegeben werden.
UML [Bearbeiten]
Dieser Abschnitt wird dir die Notation in der UML zeigen. Dies wird hilfreich sein, wenn du mit modernen Entwicklungswerkzeugen (vorhandene) Projekte "begutachtest".
Entscheidungshilfen [Bearbeiten]
Wenn von einer Klasse viele Instanzen erzeugt werden sollen, die zumeist den gleichen oder nur wenige verschiedene Zustände annehmen, dann ist das ein Indiz dafür das diese als Fliegengewichte realisiert werden können.
Implementation [Bearbeiten]
Zur Implementierung wird benötigt:
- Eine Fabrikklasse welche den Pool verwaltet, auf Nachfrage Objekte zurückgibt und diese ggf. neu erstellt und im Pool ablegt.
- Ein Interface der Fliegengewichte.
- Eine oder mehrere Implementierungen der Fliegengewichte.
Verwandte Muster [Bearbeiten]
Fliegengewichte werden gerne innerhalb eines Proxys verwendet, da so z.B. die Anzahl an Referenzen auf diese gezählt werden können.
Weblinks [Bearbeiten]
Wikipedia: Fliegengewicht (Entwurfsmuster)