Verständnis UML von DoFactory Design Muster - Decorator
-
21-09-2019 - |
Frage
Ich versuche, UML-Diagramm beschreiben Decorator-Muster auf folgenden Link:
zu verstehenhttp://www.dofactory.com/Patterns/PatternDecorator.aspx
Ich verstehe nicht, warum eine „Aggregation“ dort Beziehung zwischen Ausstatter und Komponenten ist.
Ich glaube, es sollte Zusammensetzung sein als Ausstatter kann nicht ohne die Basiskomponente vorhanden sind.
Lösung
Zusammensetzung ist stärker, dass die Aggregation, bedeutet dies in der Regel, dass das Objekt Eigentum seiner Komponenten erfolgt. Dies ist nicht der Fall in dieser Situation, weil ein Dekorateur nicht ein dekoriertes Objekt nicht besitzt. Außerdem könnten Sie den Dekorateur, ohne die Notwendigkeit entfernen das dekorierte Objekt als auch zu entfernen.
In der Praxis wird die Linie zwischen Aggregation und Zusammensetzung kann verschwommen und oft ist es nicht viel Unterschied, ob Sie eine auswählen oder die anderen, vor allem, wenn Sie behandeln Sie Diagramme als Skizzen.
Andere Tipps
Grundsätzlich, weil Sie mehrere Dekorateure auf die Komponente haben kann. Aus Wikipedia über Aggregation :
Die Unterschiede zwischen Zusammensetzung und Aggregation
Die gesamte Zusammensetzung muss eine haben Vielzahl von 0..1 oder 1, was anzeigt, dass ein Teil muss nur sein ganze. Die Gesamtheit einer Aggregation kann haben keine Vielheit.
auch
Zusammensetzung hat in der Regel ein starkes Leben Zyklusabhängigkeit zwischen Instanzen von die Containerklasse und Instanzen Die enthaltenen Klasse (n): Wenn die Behälter zerstört wird, die normalerweise jede Instanz, die sie enthält, zerstört wird als auch.
Beachten Sie die Verwendung des Wortes 'in der Regel'.
Werfen Sie einen Blick auf die Beispiel Dekorateur Diagramm , auch bei Wikipedia für ein klareres Beispiel warum dies der Fall ist.