<?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[Implementation verstecken.]]></title><description><![CDATA[<p>Moin.<br />
Kleine Noobfrage hehe:</p>
<pre><code class="language-cpp">class VFoo
{
protected:
  virtual int bar() = 0;
};
class Foo : public VFoo
{
public:
  virtual int bar() { return m_bar; }
private:
  int m_bar;
};

class Device
{
  VFoo* GetFoo() { return new VFoo(); }
};
</code></pre>
<p>So kennt man dieses Pattern denke ich zur genüge. Irrlicht, AngelScript und andere GameEngines/Libraries verwenden das so gerne. In Java ist das afaik in ähnlicher Art auch sehr beliebt.<br />
Man könnte statt einer Klasse auch viele Factory-Methoden verwenden, um das ganze übersichtlicher zu machen (je nach Gusto).</p>
<p>Was für Methoden gäbe es noch, wenn man dieses Pattern verwendet? Oder gibt es andere Möglichkeiten, Implementation strikt von Definition zu trennen?<br />
Ich mag es, ein &quot;sauberes&quot; interface nach aussen zu liefern, in dem nur öffentliche und protected-Methoden sichtbar sind.<br />
rya.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/233862/implementation-verstecken</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 14:37:45 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/233862.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 10 Feb 2009 11:20:27 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Implementation verstecken. on Tue, 10 Feb 2009 11:20:27 GMT]]></title><description><![CDATA[<p>Moin.<br />
Kleine Noobfrage hehe:</p>
<pre><code class="language-cpp">class VFoo
{
protected:
  virtual int bar() = 0;
};
class Foo : public VFoo
{
public:
  virtual int bar() { return m_bar; }
private:
  int m_bar;
};

class Device
{
  VFoo* GetFoo() { return new VFoo(); }
};
</code></pre>
<p>So kennt man dieses Pattern denke ich zur genüge. Irrlicht, AngelScript und andere GameEngines/Libraries verwenden das so gerne. In Java ist das afaik in ähnlicher Art auch sehr beliebt.<br />
Man könnte statt einer Klasse auch viele Factory-Methoden verwenden, um das ganze übersichtlicher zu machen (je nach Gusto).</p>
<p>Was für Methoden gäbe es noch, wenn man dieses Pattern verwendet? Oder gibt es andere Möglichkeiten, Implementation strikt von Definition zu trennen?<br />
Ich mag es, ein &quot;sauberes&quot; interface nach aussen zu liefern, in dem nur öffentliche und protected-Methoden sichtbar sind.<br />
rya.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1660985</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1660985</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Tue, 10 Feb 2009 11:20:27 GMT</pubDate></item><item><title><![CDATA[Reply to Implementation verstecken. on Tue, 10 Feb 2009 11:30:47 GMT]]></title><description><![CDATA[<p><a href="http://www.gotw.ca/gotw/028.htm" rel="nofollow">pimpl</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1660990</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1660990</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Tue, 10 Feb 2009 11:30:47 GMT</pubDate></item><item><title><![CDATA[Reply to Implementation verstecken. on Tue, 10 Feb 2009 16:39:52 GMT]]></title><description><![CDATA[<p>Shade Of Mine schrieb:</p>
<blockquote>
<p><a href="http://www.gotw.ca/gotw/028.htm" rel="nofollow">pimpl</a></p>
</blockquote>
<p>Danke für den Link, das sieht gut aus <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /><br />
rya.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1661243</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1661243</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Tue, 10 Feb 2009 16:39:52 GMT</pubDate></item><item><title><![CDATA[Reply to Implementation verstecken. on Tue, 10 Feb 2009 17:56:28 GMT]]></title><description><![CDATA[<p>Scorcher24 schrieb:</p>
<blockquote>
<p>Was für Methoden gäbe es noch, wenn man dieses Pattern verwendet? Oder gibt es andere Möglichkeiten, Implementation strikt von Definition zu trennen?</p>
</blockquote>
<p>Afaik zur Trennung von Abstraction und Implementation ist das Bridge Pattern ein Klassiker. Das &quot;Pimpl Idiom&quot;, scheint mir eine Variante dessen (hab mich da selber aber auch erst vor 2 Wochen eingelesen).</p>
<p>Zu groberer Abtrennen der Implementation und GUI bzw innerhalb von GUIs, gehn auch Command oder Observer-aehnliche Gebilde (Signal/Slot, MVC, etc), aber das war glaube ich nicht gefragt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1661298</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1661298</guid><dc:creator><![CDATA[Fabeltier]]></dc:creator><pubDate>Tue, 10 Feb 2009 17:56:28 GMT</pubDate></item><item><title><![CDATA[Reply to Implementation verstecken. on Tue, 10 Feb 2009 18:06:16 GMT]]></title><description><![CDATA[<p>Ich denke pimpl und Bridge haben unterschiedliche Ideen die sie verfolgen - der Code sieht aehnlich aus. Aber du hast bei pimpl zB garnicht den Versuch Implementation und Interface jeweils austauschbar zu machen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1661308</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1661308</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Tue, 10 Feb 2009 18:06:16 GMT</pubDate></item><item><title><![CDATA[Reply to Implementation verstecken. on Tue, 10 Feb 2009 19:39:15 GMT]]></title><description><![CDATA[<p>Shade Of Mine schrieb:</p>
<blockquote>
<p>Ich denke pimpl und Bridge haben unterschiedliche Ideen die sie verfolgen - der Code sieht aehnlich aus. Aber du hast bei pimpl zB garnicht den Versuch Implementation und Interface jeweils austauschbar zu machen.</p>
</blockquote>
<p>Pimpl ist fuer mich ziemlich neu. Daher sah Pimpl wohl auf den ersten Blick aus wie eine &quot;innere Bridge&quot;, wie zB auch innerere Proxy Klasse moeglich sind, afaik. Allerdings kam ich auf Pimpl auch aus anderer Motivation. Interessant.</p>
<p>Somit kenne ich zur Trennung von Interface und Implementierung nur das Bridge Pattern: ...so that the two can vary independently! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1661366</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1661366</guid><dc:creator><![CDATA[Fabeltier]]></dc:creator><pubDate>Tue, 10 Feb 2009 19:39:15 GMT</pubDate></item></channel></rss>