Commit 90d18108 authored by Blanke, Daniela's avatar Blanke, Daniela
Browse files

Update design-patterns-composite.html

parent 65ad828e
Pipeline #8016 failed with stage
in 48 seconds
<p>Das Kompositum (engl. <i>Composite</i>) ist ein Strukturmuster, das angewendet wird, um Objekte, die sich ein gemeinsames Interface teilen, zu einer hierarchischer Baumstruktur zusammenfügen. Die grundlegende Idee des Kompositum-Musters ist es, sowohl primitive Objekte als auch zusammengesetzte Objekte, die aus mehreren primitiven Objekte bestehen, in einem Interface zu repräsentieren. Dadurch können einzelne Objekte und ihre Kompositionen einheitlich behandelt werden.</p>
<p>Das Kompositum (engl. <i>Composite</i>) ist ein Strukturmuster, das angewendet wird, um Objekte, die sich ein gemeinsames Interface teilen, zu einer hierarchischer Baumstruktur zusammenzufügen. Die grundlegende Idee des Kompositum-Musters ist es, sowohl primitive Objekte als auch zusammengesetzte Objekte, die aus mehreren primitiven Objekten bestehen, in einem Interface zu repräsentieren. Dadurch können einzelne Objekte und ihre Kompositionen einheitlich behandelt werden.</p>
<p>Es soll also folgende Frage durch das Muster beantwortet werden: Wie können in einer objektorientierten Sprache einzelne Objekte als Teile (= Komponenten) geschickt zu einem Ganzen (= Kompositum) zusammengesetzt werden?</p>
......@@ -35,7 +35,7 @@
</div>
</div>
<p>Es bietet sich an, ein gemeinsames Interface für die Formen zu spezifieren, das die Methode <code>draw</code> für jede Form vorschreibt. Da sich alle Formen auch ein gemeinsames Attribut vom Typ <code>GraphicsContext</code> teilen und ein Interface zustandslos ist, wird eine abstrakte Klasse <code>Shape</code> eingeführt.</p>
<p>Es bietet sich an, ein gemeinsames Interface für die Formen zu spezifizieren, das die Methode <code>draw</code> für jede Form vorschreibt. Da sich alle Formen auch ein gemeinsames Attribut vom Typ <code>GraphicsContext</code> teilen und ein Interface zustandslos ist, wird eine abstrakte Klasse <code>Shape</code> eingeführt.</p>
<ul class="nav nav-tabs" id="composite-tabs2" role="tablist">
<li class="nav-item"><a href="#composite-tabs-shape" class="nav-link active" data-toggle="tab" role="tab">Shape</a></li>
......@@ -91,7 +91,7 @@
<img src="media/patterns_composite_shapes.png" style="width:750px">
<label>Zusammengesetzte Formen</label>
<p>Dadurch dass das Kompositum als Teile nicht nur primitive Formen sondern auch andere zusammengesetzte Formen aufnehmen kann, entsteht eine Teil-Ganzes-Hierarchie, die in ihrer Tiefe grundsätzlich nicht beschränkt ist. Die Beziehungen der beteiligten Objekte stellen eine Baumstruktur dar, da zyklische Beziehungen i.d.R. nicht erwünscht sind und daher beim Einfügen von Teilen zu einem Ganzen verhindert werden sollten. Da es sich um eine Baumstruktur handelt, nennen wir die Basisformen auch Blätter (engl. <i>Leaf</i>). Das folgende Objektdiagramm verdeutlicht eine derartige verschachtelte Baumstruktur, die die obigen Formen weiterverwendet. Die resultierende komplexe Form ist daneben dargestellt. Auf Basis weniger Basisformen können so beliebig komplexe Kompositionen zusammengestellt werden.</p>
<p>Dadurch, dass das Kompositum als Teile nicht nur primitive Formen, sondern auch andere zusammengesetzte Formen aufnehmen kann, entsteht eine Teil-Ganzes-Hierarchie, die in ihrer Tiefe grundsätzlich nicht beschränkt ist. Die Beziehungen der beteiligten Objekte stellen eine Baumstruktur dar, da zyklische Beziehungen i.d.R. nicht erwünscht sind und daher beim Einfügen von Teilen zu einem Ganzen verhindert werden sollten. Da es sich um eine Baumstruktur handelt, nennen wir die Basisformen auch Blätter (engl. <i>Leaf</i>). Das folgende Objektdiagramm verdeutlicht eine derartige verschachtelte Baumstruktur, die die obigen Formen weiterverwendet. Die resultierende komplexe Form ist daneben dargestellt. Auf Basis weniger Basisformen können so beliebig komplexe Kompositionen zusammengestellt werden.</p>
<img src="media/patterns_composite_shapes2.png" style="width:1000px">
<label>Zusammengesetzte Form "Vitruvian Man"</label>
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment