homeSoftwaredesign Softwaredesign: Fliegengewicht Prof. Dr. Uwe Schmidt FH Wedel

Fliegengewicht

weiter

weiter

Fliegengewicht

Klassifizierung
objektbasiertes Strukturmuster
merke
mit starken Bezügen zu Erzeugungsmustern
weiter
Zweck
viele Objekte mit gleichem unveränderlichen Zustand zu einem gemeinsamen zusammenfassen und die Referenzen mehrfach nutzen.
weiter
merke
Muster zur Speicherplatzoptimierung
weiter
Alias
flyweight
weiter
Motivation
hierarchische Dokumentenstruktur

weiter
merke
alle Elemente haben ähnliche Eigenschaften
auch die einfachen Zeichen, die Blätter
weiter
merke
für jedes Zeichen, jedes Blatt, ein neues Objekt erzeugen
schlecht
Speicher, Laufzeit
weiter
Idee
einfache Objekte, Zeichen, nur einmal erzeugen und gemeinsam nutzen
weiter
Anwendbarkeit
eine Anwendung verwendet viele Objekte
die Speicherkosten sind wegen der # der Objekte zu hoch
die Objekte verändern ihren Zustand nicht
viele Objekte besitzen den gleichen Zustand
weiter
Struktur
Strukturdiagramm
weiter
Teilnehmer
  Fliegengewicht
abstrakt
Schnittstelle
  KonkretesFliegengewicht
konkret
Klasse für Objekte, die ihren Zustand nicht ändern und die häufiger benötigt werden
  AnderesFliegengewicht
konkret
Klasse für Objekte, die ihren Zustand ändern oder selten benötigt werden
  FliegengewichtFabrik
konkret
Klasse zur Erzeugung von Fliegengewicht-Objekten
zur Verwaltung der Referenzen auf gemeinsam genutzte Objekte
weiter
Konsequenzen
Fliegengewichte dürfen ihren Zustand nicht ändern
--> funktionale Programmierung
alle variierbare Information muss aus dem Kontext an die Methoden der Fliegengewicht-Objekte über Parameter mitgegeben werden
Fliegengewichte werden einmal erzeugt und nie geändert
Verhalten wie Konstanten
Blätter eines Kompositums sind gute Kandidaten für Fliegengewichte
entscheidend: Erzeugung
weiter
Implementierung
Vergleiche können auf Referenzvergleiche zurückgeführt werden
intrinsischer Zustand: Zustand im Objekt
extrinsischer Zustand: Information aus Parametern
Speichergewinn hängt von der # der gemeinsam genutzten Objekte ab
hängt von der # der Objekte für den extrinsischen Zustand ab
weiter
Beispiele
weiter
Bekannte Verwendungen
in funktionaler Programmierung - geht auch mit OOP - wird sehr, sehr viel mit Fliegengewichten gearbeitet.
Ganze Teilstrukturen können gemeinsam genutzt werden.
weiter
verwandte Muster
Implementierung der Blätter eines Kompositums als Fliegengewichte
weiter
Erzeugungsmuster für Fliegengewichte
weiter
zur Speicherung des extrinsischen Zustands
weiter

Letzte Änderung: 03.06.2014
© Prof. Dr. Uwe Schmidt
Prof. Dr. Uwe Schmidt FH Wedel