<?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[mehrere interfaces]]></title><description><![CDATA[<p>Hallo</p>
<p>ich schreibe grade eine dll die interfaces exportiert.</p>
<p>dabei erben die objekte z.b. von mehreren <strong>interfaces, (keine konkreten klassen)</strong>.<br />
macht es sinn ein objekt in mehrere spezialisierte interfaces aufzuteilen oder sämmtliche funktionalität in weniger spezialisierten interfaces zu packen?</p>
<pre><code class="language-cpp">struct iface1
{
    virtual void func1() = 0;
};
struct iface2
{
    virtual void func2() = 0;
};
struct iface3
{
    virtual void func3() = 0;
};
class object : public iface1, public iface2, public iface3
{
//....
};
</code></pre>
<p>vs:</p>
<pre><code class="language-cpp">struct iface
{
    virtual void func1() = 0;
    virtual void func2() = 0;
    virtual void func3() = 0;
};
class object : public iface
{
//....
};
</code></pre>
<p>das erste hätte den vorteil, dass man mehrere unterscheidliche objekte<br />
je nach verwendungszweck irgentwo speichern kann.</p>
<p>welches design findet ihr besser?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/248275/mehrere-interfaces</link><generator>RSS for Node</generator><lastBuildDate>Thu, 17 Sep 2026 02:34:29 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/248275.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 22 Aug 2009 14:36:34 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to mehrere interfaces on Sat, 22 Aug 2009 14:36:34 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>ich schreibe grade eine dll die interfaces exportiert.</p>
<p>dabei erben die objekte z.b. von mehreren <strong>interfaces, (keine konkreten klassen)</strong>.<br />
macht es sinn ein objekt in mehrere spezialisierte interfaces aufzuteilen oder sämmtliche funktionalität in weniger spezialisierten interfaces zu packen?</p>
<pre><code class="language-cpp">struct iface1
{
    virtual void func1() = 0;
};
struct iface2
{
    virtual void func2() = 0;
};
struct iface3
{
    virtual void func3() = 0;
};
class object : public iface1, public iface2, public iface3
{
//....
};
</code></pre>
<p>vs:</p>
<pre><code class="language-cpp">struct iface
{
    virtual void func1() = 0;
    virtual void func2() = 0;
    virtual void func3() = 0;
};
class object : public iface
{
//....
};
</code></pre>
<p>das erste hätte den vorteil, dass man mehrere unterscheidliche objekte<br />
je nach verwendungszweck irgentwo speichern kann.</p>
<p>welches design findet ihr besser?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1764888</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1764888</guid><dc:creator><![CDATA[namenbenutzer]]></dc:creator><pubDate>Sat, 22 Aug 2009 14:36:34 GMT</pubDate></item><item><title><![CDATA[Reply to mehrere interfaces on Sat, 22 Aug 2009 15:10:39 GMT]]></title><description><![CDATA[<p>Ich finde, das kann man so nicht beantworten. Dazu ist dein Beispiel nicht konkret genug.</p>
<p>Falls es möglich ist, dass nicht bloß eine Klasse von deinen drei Interfaces erbt, sondern, dass es auch Klassen gibt, die sinnvoll von nur einem erben, solltest du sie so aufteilen. Falls die drei Interfaces wirklich drei verschiedene Konzepte darstellen dito. Allerdings wäre dann eine Klasse, die alle drei (total verschiedenen!) Konzepte implementiert wohl fragwürdig.</p>
<p>Fazit: Es kommt auf die konkreten Interfaces an, um zu entscheiden, was besser ist.</p>
<p>Stefan.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1764925</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1764925</guid><dc:creator><![CDATA[DStefan]]></dc:creator><pubDate>Sat, 22 Aug 2009 15:10:39 GMT</pubDate></item><item><title><![CDATA[Reply to mehrere interfaces on Sat, 22 Aug 2009 20:57:59 GMT]]></title><description><![CDATA[<p>es geht um die klassen einer GUI</p>
<p>es gibt</p>
<p>element (position, größe, rahmenbreite...)<br />
textelement (alles was ein text beinhaltet) // hab kein besseren namen gefunden<br />
scrollable (alles was eine scrollbar haben kann)<br />
renderable (man kann es malen)<br />
stated (alles was mehrere zustände haben kann)<br />
parentelement (alles was unterelemente hat)</p>
<p>(viele namen hab ich mir eben aus den ingern gesogen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> )</p>
<p>bei einer gui gibt es ja für alles ein element. um möglichst code-duplication<br />
zu verhindern, und um elemente unter der selben kategorie abspeichern zu können,<br />
wäre es hilfreich die interfaces so spezialisiert wie möglich zu machen.</p>
<p>sowas ähnlich wie das COM-model halt. dort gibt es auch für jede funktionalität<br />
ein interface.</p>
<p>so könnte man in einer liste alle farbigen elemente speichern und in einer anderen alle, die auf die maus reagieren, etc.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1765065</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1765065</guid><dc:creator><![CDATA[namenbenutzer]]></dc:creator><pubDate>Sat, 22 Aug 2009 20:57:59 GMT</pubDate></item><item><title><![CDATA[Reply to mehrere interfaces on Sat, 22 Aug 2009 21:04:06 GMT]]></title><description><![CDATA[<p>ein beispiel:</p>
<p>button ist</p>
<p>element, renderable, textelement und colored</p>
<p>ein frame allerdings ist</p>
<p>element, (renderable vllt), parentelement, scrollable</p>
<p>es gibt also allerlei mögliche kombinationen auf den interfaces. wie sollte man<br />
das am besten handhaben? (OOP natürlich)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1765069</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1765069</guid><dc:creator><![CDATA[namenbenutzer]]></dc:creator><pubDate>Sat, 22 Aug 2009 21:04:06 GMT</pubDate></item><item><title><![CDATA[Reply to mehrere interfaces on Sat, 22 Aug 2009 22:56:39 GMT]]></title><description><![CDATA[<p>Nach meinen eigenen Worten muss ich wohl dafür sein, dass es in diesem Fall viele Interfaces gibt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Bei einigen deiner Vorschläge habe ich allerdings meine Zweifel:</p>
<p>- stated<br />
Irgendwie kann doch jedes Objekt mehrere Zustände haben? Das sind für mich Objekt-Attibute. button =&gt; pressed, window =&gt; visible ...</p>
<p>- colored<br />
Dasselbe. Farbe ist ein Attribut bestimmter Elemente.</p>
<p>Stefan.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1765108</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1765108</guid><dc:creator><![CDATA[DStefan]]></dc:creator><pubDate>Sat, 22 Aug 2009 22:56:39 GMT</pubDate></item><item><title><![CDATA[Reply to mehrere interfaces on Sat, 22 Aug 2009 23:23:24 GMT]]></title><description><![CDATA[<p>mit dem stated und colored hast du recht.<br />
wenn man aber defür ein interface macht, kann man z.b. alle elemente in der lsite<br />
auf einmal grün färben.</p>
<p>stated... naja nicht jedes element kann merere zustände haben (dauerzustände wie bei einer checkbox)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1765122</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1765122</guid><dc:creator><![CDATA[namenbentuzer]]></dc:creator><pubDate>Sat, 22 Aug 2009 23:23:24 GMT</pubDate></item><item><title><![CDATA[Reply to mehrere interfaces on Sun, 23 Aug 2009 00:19:55 GMT]]></title><description><![CDATA[<p>namenbentuzer schrieb:</p>
<blockquote>
<p>mit dem stated und colored hast du recht.<br />
wenn man aber defür ein interface macht, kann man z.b. alle elemente in der lsite<br />
auf einmal grün färben.</p>
<p>stated... naja nicht jedes element kann merere zustände haben (dauerzustände wie bei einer checkbox)</p>
</blockquote>
<p>Ich weiß nicht.... Ich hab auch schon eine GUI-Lib gemacht, aber auf solche Klassen wäre ich nie gekommen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Du wirst es wohl selbst am besten wissen.</p>
<p>Stefan.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1765132</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1765132</guid><dc:creator><![CDATA[DStefan]]></dc:creator><pubDate>Sun, 23 Aug 2009 00:19:55 GMT</pubDate></item></channel></rss>