Muster: Flyweight

Aus Wikibooks

Wechseln zu: Navigation, Suche

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)


Go-up.svg Hoch zum Inhaltsverzeichnis
Persönliche Werkzeuge