Muster: Flyweight
Aus Wikibooks
Inhaltsverzeichnis |
[Bearbeiten] Fliegengewicht
Das Fliegengewicht (engl. Flyweight) dient dazu eine große Anzahl an Objekten zu verwalten, ohne eine Instanz von jedem Einzelnen zu erstellen.
[Bearbeiten] Zweck
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.
[Bearbeiten] UML
Dieser Abschnitt wird dir die Notation in der UML zeigen. Dies wird hilfreich sein, wenn du mit modernen Entwicklungswerkzeugen (vorhandene) Projekte "begutachtest".
[Bearbeiten] Entscheidungshilfen
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.
[Bearbeiten] Implementation
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.
[Bearbeiten] Verwandte Muster
Fliegengewichte werden gerne innerhalb eines Proxys verwendet, da so z.B. die Anzahl an Referenzen auf diese gezählt werden können.
[Bearbeiten] Weblinks
Wikipedia: Fliegengewicht (Entwurfsmuster)

