<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Composite Design Pattern ist ...]]></title><description><![CDATA[<p>Ich habe mich mal ein wenig mit dem Pattern befasst und finde es irgendwie nicht so gelungen. Was sind die Alternativen? Es kann doch nicht sein, dass mir ein dickes Interface aufgezwungen wird... konkret habe ich hier eine bereits recht anschauliche Komponentenvererbungstruktur, die ich nicht weiter belasten will. Gibt es eine elegante Lösung für dieses Problem?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/162475/composite-design-pattern-ist</link><generator>RSS for Node</generator><lastBuildDate>Thu, 09 Jul 2026 07:12:35 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/162475.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 18 Oct 2006 23:04:45 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Composite Design Pattern ist ... on Wed, 18 Oct 2006 23:04:45 GMT]]></title><description><![CDATA[<p>Ich habe mich mal ein wenig mit dem Pattern befasst und finde es irgendwie nicht so gelungen. Was sind die Alternativen? Es kann doch nicht sein, dass mir ein dickes Interface aufgezwungen wird... konkret habe ich hier eine bereits recht anschauliche Komponentenvererbungstruktur, die ich nicht weiter belasten will. Gibt es eine elegante Lösung für dieses Problem?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1157363</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1157363</guid><dc:creator><![CDATA[Frager]]></dc:creator><pubDate>Wed, 18 Oct 2006 23:04:45 GMT</pubDate></item><item><title><![CDATA[Reply to Composite Design Pattern ist ... on Thu, 19 Oct 2006 10:55:31 GMT]]></title><description><![CDATA[<p>Bei Pattern muss man immer ueberlegen was das Ziel ist.</p>
<p>Das Ziel von Composite ist es zu verhindern fuer jede Komponente ein eigenes handling zu schreiben.</p>
<p>Dadurch wird der Code sauberer und das Interface groesser.</p>
<p>Was genau sind deine Ziele?</p>
<p>Interface kleiner, Code sauberer und dabei noch Weltfrieden wird nicht gehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1157553</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1157553</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Thu, 19 Oct 2006 10:55:31 GMT</pubDate></item><item><title><![CDATA[Reply to Composite Design Pattern ist ... on Thu, 19 Oct 2006 14:52:49 GMT]]></title><description><![CDATA[<p>Ich weiss nicht so Recht wie ich es beschreiben soll. Es ist so, dass ich im Prinzip einen Scenegraphen als Komponente implementieren will. Allerdings stellt die Komponente <em>nur</em> die <em>leblosen</em> Daten bereit; die Logik sollen <em>andere</em> Komponenten regeln, was genau dort passiert interessiert mich nicht die Bohne (es geht primär um die Berechnung einiger langweiliger Werte, <em>nicht</em> um Grafik mit OpenGL und solche Dinge) . Um das zu ermöglichen braucht man aber Zugriff auf alle im Graphen abgelegten Objekte, welche sehr zahlreich werden können. Hier kommt nun dieses verflixte Composite Pattern ins Spiel: Manche Objekte sollen andere zusammenfassen, andere jedoch nicht. Weiter soll jedes Objekt das es umgebende Objekt kennen. Mir gefällt aber die Lösung mit dem Pattern überhaupt nicht! Bisher waren alle Schnittstellen immer schön sauber und plötzlich sollen alle eine Collection anbieten, die von den meisten Instanzen <em>nie</em> gebrauch werden wird?!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1157716</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1157716</guid><dc:creator><![CDATA[Frager]]></dc:creator><pubDate>Thu, 19 Oct 2006 14:52:49 GMT</pubDate></item><item><title><![CDATA[Reply to Composite Design Pattern ist ... on Thu, 19 Oct 2006 15:30:21 GMT]]></title><description><![CDATA[<p>Die Collection kannst du ohne weiteres ins Kompositum packen.Die Implementierungen der Blattmethoden benötigt ja keinen Container und der Container gehört nicht zur öffentlichen Schnittstelle von Komponente.<br />
Der Container ist nur nen (privates) Implementierungsdetail von Kompositum.</p>
<p>Gruß Spacelord</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1157757</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1157757</guid><dc:creator><![CDATA[Spacelord]]></dc:creator><pubDate>Thu, 19 Oct 2006 15:30:21 GMT</pubDate></item><item><title><![CDATA[Reply to Composite Design Pattern ist ... on Thu, 19 Oct 2006 15:42:00 GMT]]></title><description><![CDATA[<p>Spacelord schrieb:</p>
<blockquote>
<p>Die Collection kannst du ohne weiteres ins Kompositum packen.Die Implementierungen der Blattmethoden benötigt ja keinen Container und der Container gehört nicht zur öffentlichen Schnittstelle von Komponente. Der Container ist nur nen (privates) Implementierungsdetail von Kompositum.</p>
</blockquote>
<p>Hä das versteh ich jetzt nicht so ganz. Meinst du mit Container die Collection? Wenn ja, dann stimmt das ja nicht, denn die Collection muss öffentlich sein, damit in jedem Fall der Zugriff möglich ist. Ist es designtechnisch eigentlich sinnvoller von einer Collection-Schnittstelle zu erben oder eine Collection anzubieten?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1157767</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1157767</guid><dc:creator><![CDATA[Frager]]></dc:creator><pubDate>Thu, 19 Oct 2006 15:42:00 GMT</pubDate></item><item><title><![CDATA[Reply to Composite Design Pattern ist ... on Thu, 19 Oct 2006 15:48:24 GMT]]></title><description><![CDATA[<p>Ja,ich meine mit Container die Collection.Was meinst du denn damit und warum sollte der Container öffentlich sein?<br />
Es gibt keinen Grund direkt darauf zuzugreifen.Sinn der Sache ist es dass die Kompositumklasse in den Implementierungen seiner Methoden den Aufruf der Methode an seine Kinder weiterleitet.Dabei ist der Container nur Mittel zum Zweck.</p>
<p>MfG Spacelord</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1157773</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1157773</guid><dc:creator><![CDATA[Spacelord]]></dc:creator><pubDate>Thu, 19 Oct 2006 15:48:24 GMT</pubDate></item><item><title><![CDATA[Reply to Composite Design Pattern ist ... on Thu, 19 Oct 2006 15:50:58 GMT]]></title><description><![CDATA[<p>Spacelord meint, dass du ja nur ein dummy methode anbieten musst, die ja nur 0 kinder zurueck gibt.</p>
<p>aber das ist es eben:</p>
<p>das Problem dass Composite loest ist folgendes:</p>
<p>dass du schoene saubere schnittstellen hast aber dafuer dauernd casten muss und du fuer nahezu jedes objekt ne spezial behandlung brauchst.</p>
<p>Das loest Composite einfach damit, dass es sagt &quot;jedes Objekt hat diese Methoden - und sie liefern keinen Fehler wenn man sie aufruft sondern verhalten sich natuerlich&quot;.</p>
<p>Dadurch hast du natuerlich groessere schnittstellen. Wo du aber meistens ne schoene default implementierung anbieten kannst, so dass du viel implementierungsaufwand sparst.</p>
<p>Die schnittstelle bei Composite ist allerdings ueberladen. Dass ist der Preis den man zahlen muss um sauberen Code zu bekommen. Man kann es auch umdrehen: saubere schnittstellen und ueberladener code.</p>
<p>Man muss wissen was man haben will.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1157774</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1157774</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Thu, 19 Oct 2006 15:50:58 GMT</pubDate></item><item><title><![CDATA[Reply to Composite Design Pattern ist ... on Thu, 19 Oct 2006 16:04:08 GMT]]></title><description><![CDATA[<p>OK. Ich habe mir halt eine Objekthierarchie vorgestellt, bei der Composite von einer Collection-Schnittstelle <em>erbt</em>. Aber in diesem Fall müsste ich die Collection dann von der Schnittstelle aus sonst irgendwie anbieten (konkret per Eigenschaft oder Methode). Momentan tendiere ich dazu, keine Kompositum in der Collection abzulegensondern Objekte, welche eine Schnittstelle implementieren, die das Objekt selbst als wenn möglich Kompositum und sonst als null anbieten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1157786</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1157786</guid><dc:creator><![CDATA[Frager]]></dc:creator><pubDate>Thu, 19 Oct 2006 16:04:08 GMT</pubDate></item></channel></rss>