<?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[Richtiges Design]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>die Frage mag blöd klingen, aber ich überlege gerade Folgendes:</p>
<p>Ich möchte einer Klasse Methoden zum Hinzufügen von animierten Objekten geben. Diese unterscheiden sich in Hintergrund und bewegliche Objekte.</p>
<p>Macht man da 2 public Methoden</p>
<pre><code class="language-cpp">addBackGround(...);
</code></pre>
<p>und</p>
<pre><code class="language-cpp">addMovable(...);
</code></pre>
<p>oder macht man eine Methode</p>
<pre><code class="language-cpp">addAnimation(.., BOOL backGround);
</code></pre>
<p>?</p>
<p>Da ich sehr javalastig bin, tendiere ich eher zu erstem Ansatz, wobei intern natürlich auf eine private Methode zurückgegriffen wird, da der Code sonst fast dupliziert wäre.</p>
<p>Gibts da in C++ Konventionen?</p>
<p>Danke schon mal<br />
Ciao</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/139000/richtiges-design</link><generator>RSS for Node</generator><lastBuildDate>Sun, 30 Aug 2026 09:36:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/139000.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 02 Mar 2006 21:46:39 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Richtiges Design on Thu, 02 Mar 2006 21:46:39 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>die Frage mag blöd klingen, aber ich überlege gerade Folgendes:</p>
<p>Ich möchte einer Klasse Methoden zum Hinzufügen von animierten Objekten geben. Diese unterscheiden sich in Hintergrund und bewegliche Objekte.</p>
<p>Macht man da 2 public Methoden</p>
<pre><code class="language-cpp">addBackGround(...);
</code></pre>
<p>und</p>
<pre><code class="language-cpp">addMovable(...);
</code></pre>
<p>oder macht man eine Methode</p>
<pre><code class="language-cpp">addAnimation(.., BOOL backGround);
</code></pre>
<p>?</p>
<p>Da ich sehr javalastig bin, tendiere ich eher zu erstem Ansatz, wobei intern natürlich auf eine private Methode zurückgegriffen wird, da der Code sonst fast dupliziert wäre.</p>
<p>Gibts da in C++ Konventionen?</p>
<p>Danke schon mal<br />
Ciao</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1007185</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1007185</guid><dc:creator><![CDATA[Reth]]></dc:creator><pubDate>Thu, 02 Mar 2006 21:46:39 GMT</pubDate></item><item><title><![CDATA[Reply to Richtiges Design on Thu, 02 Mar 2006 23:08:56 GMT]]></title><description><![CDATA[<p>wenn du eh eine gemiensame private methode machen willst<br />
würd ich dir empfehlen zweiters da es weniger code is und flexibler..<br />
allerdings selbre würde ich zu ersterem tendiren ohne private methode.. code duplizierren geht heutzutage mit STRG+C / STRG +V <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="😉"
    /> <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>Mfg SHade37337</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1007224</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1007224</guid><dc:creator><![CDATA[branleb]]></dc:creator><pubDate>Thu, 02 Mar 2006 23:08:56 GMT</pubDate></item><item><title><![CDATA[Reply to Richtiges Design on Thu, 02 Mar 2006 23:09:48 GMT]]></title><description><![CDATA[<p>wie wärs mit 2 verschiedenen klassen, die von <em>Objekt</em> abgeleitet wurden. Somit ist es möglich über eine Array/Vector alle Objekte durchzuiterieren und gleichzeitig sparst du dir lästige</p>
<pre><code class="language-cpp">void Draw()
{
  if(Background)
  {
    DrawBackground();
  }
  else
  {
    DrawAnimation(aktuellesBild++);
  }
}
</code></pre>
<p>abfragen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1007226</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1007226</guid><dc:creator><![CDATA[cin]]></dc:creator><pubDate>Thu, 02 Mar 2006 23:09:48 GMT</pubDate></item><item><title><![CDATA[Reply to Richtiges Design on Thu, 02 Mar 2006 23:17:37 GMT]]></title><description><![CDATA[<p>shade37337 schrieb:</p>
<blockquote>
<p>wenn du eh eine gemiensame private methode machen willst<br />
würd ich dir empfehlen zweiters da es weniger code is und flexibler..<br />
allerdings selbre würde ich zu ersterem tendiren ohne private methode.. code duplizierren geht heutzutage mit STRG+C / STRG +V <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="😉"
    /> <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>Mfg SHade37337</p>
</blockquote>
<p>Ist aber schlechter wartbar!</p>
<p>Ciao</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1007228</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1007228</guid><dc:creator><![CDATA[Reth]]></dc:creator><pubDate>Thu, 02 Mar 2006 23:17:37 GMT</pubDate></item><item><title><![CDATA[Reply to Richtiges Design on Thu, 02 Mar 2006 23:19:34 GMT]]></title><description><![CDATA[<p>cin schrieb:</p>
<blockquote>
<p>wie wärs mit 2 verschiedenen klassen, die von <em>Objekt</em> abgeleitet wurden. Somit ist es möglich über eine Array/Vector alle Objekte durchzuiterieren und gleichzeitig sparst du dir lästige</p>
<pre><code class="language-cpp">void Draw()
{
  if(Background)
  {
    DrawBackground();
  }
  else
  {
    DrawAnimation(aktuellesBild++);
  }
}
</code></pre>
<p>abfragen.</p>
</blockquote>
<p>Das läuft doch aber auch auf 2 Hinzufügemethoden hinaus, oder?</p>
<pre><code class="language-cpp">addBackGround();
addAnim();
</code></pre>
<p>In draw() wird dann abgefagt, was gezeichnet werden soll.</p>
<p>Ciao</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1007229</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1007229</guid><dc:creator><![CDATA[Reth]]></dc:creator><pubDate>Thu, 02 Mar 2006 23:19:34 GMT</pubDate></item><item><title><![CDATA[Reply to Richtiges Design on Thu, 02 Mar 2006 23:32:01 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class DrawObject
{
public:
  virtual void Draw()=0;
};

class DrawBackground : public DrawObject
{
public:
  void Draw(){...};
};

class DrawAnimation : public DrawObject
{
public:
  void Draw(){...};
};

class DrawManager
{
private:
    std::vector&lt;DrawObject*&gt; ZeichenObjekte;
public:
    void Draw()
    {
      //for(n=0...)
        ZeichenObjekte[n].Draw();
    }
    void AddDrawObject(DrawObject* obj)
    {
        ZeichenObjekte.push_back(obj);
    }
};
</code></pre>
<pre><code class="language-cpp">DrawManager.AddDrawObject(new DrawBackground(&quot;bild1.bmp&quot;,210,20));
DrawManager.AddDrawObject(new DrawBackground(&quot;bild2.bmp&quot;,30,400));
DrawManager.AddDrawObject(new DrawAnimation(&quot;ani1.bmp&quot;,210,20,21));
</code></pre>
<p>So meinte ich das eigentlich. Um die Abfrage, ob du jetzt Hintergrund-Objekte hinzufügst, oder eben andere, kommst du natürlich nicht drumherum, aber diese Abfrage sollte sich auf ein Minimum reduzieren. In diesem Beispiel ist es dem &quot;DrawManager&quot; zum Beispiel vollkommen egal, was für ein Typ er jetzt zeichnet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1007235</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1007235</guid><dc:creator><![CDATA[cin]]></dc:creator><pubDate>Thu, 02 Mar 2006 23:32:01 GMT</pubDate></item><item><title><![CDATA[Reply to Richtiges Design on Thu, 02 Mar 2006 23:38:25 GMT]]></title><description><![CDATA[<p>auch wenns nicht wirklich schön ist, kannstes zur Not auch so machen:</p>
<pre><code class="language-cpp">class Background {
    public: 
        static const bool backGround = true;
  //....
}

class AniObj{
    public: 
        static const bool backGround = false;
  //....
}

....
template&lt;class T&gt;
void add(T obj)
{
    if(T::backGround)
        //blabla
    else
        //blabl
    //blaba
}
</code></pre>
<p>dann haste zumindest kein performanceverlust durch if Abfrage und auch keine Codedublizierung..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1007238</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1007238</guid><dc:creator><![CDATA[life]]></dc:creator><pubDate>Thu, 02 Mar 2006 23:38:25 GMT</pubDate></item><item><title><![CDATA[Reply to Richtiges Design on Fri, 03 Mar 2006 02:35:19 GMT]]></title><description><![CDATA[<p>du kannst auch addAnimation() privat implementieren und dann addBackground() und addMovable() als public-inline-methoden hinzufügen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1007260</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1007260</guid><dc:creator><![CDATA[Konfusius]]></dc:creator><pubDate>Fri, 03 Mar 2006 02:35:19 GMT</pubDate></item><item><title><![CDATA[Reply to Richtiges Design on Fri, 03 Mar 2006 02:45:08 GMT]]></title><description><![CDATA[<p>vieleicht hilf dir das</p>
<p><a href="http://www.robsite.de/daten/tutorials/NotizCPP.zip" rel="nofollow">http://www.robsite.de/daten/tutorials/NotizCPP.zip</a></p>
<p>da gehts hauptsächlich um guten stil.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1007261</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1007261</guid><dc:creator><![CDATA[walljumper]]></dc:creator><pubDate>Fri, 03 Mar 2006 02:45:08 GMT</pubDate></item><item><title><![CDATA[Reply to Richtiges Design on Fri, 03 Mar 2006 03:51:09 GMT]]></title><description><![CDATA[<p>shade37337 schrieb:</p>
<blockquote>
<p>wenn du eh eine gemiensame private methode machen willst<br />
würd ich dir empfehlen zweiters da es weniger code is und flexibler..<br />
allerdings selbre würde ich zu ersterem tendiren ohne private methode.. code duplizierren geht heutzutage mit STRG+C / STRG +V <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="😉"
    /> <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>
</blockquote>
<p>Code wird niemals dupliziert.</p>
<p>STRG+C / STRG+V ist ein schlechter Ratgeber für jeden Entwickler, besser Kopf einschalten.</p>
<p>Siehe auch <a href="https://duckduckgo.com/?q=isbn+3827322782&amp;cppnetbooks" rel="nofollow">Refactoring | ISBN: 3827322782</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1007268</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1007268</guid><dc:creator><![CDATA[Marc++us]]></dc:creator><pubDate>Fri, 03 Mar 2006 03:51:09 GMT</pubDate></item></channel></rss>