<?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[Was gilt als gutes OOP ?]]></title><description><![CDATA[<p>Servus Leute,</p>
<p>bin neulich heute auf diese Quelle gestossen :<br />
<a href="http://www.javaworld.com/javaworld/jw-09-2003/jw-0905-toolbox.html" rel="nofollow">http://www.javaworld.com/javaworld/jw-09-2003/jw-0905-toolbox.html</a></p>
<p>Klar, das ist für Java, aber Java ist auch OOP, bzw nur.</p>
<p>Ich dachte bis jetzt immer folgendes : Man macht Member-Variablen von Klassen wenn möglich private. Verwalten tut man sie dann mit getter und setter Funktionen. Ich dachte sowas zB sollte man für gutes OOP berücksichtig, scheint aber ja wohl garnicht zu sein. Anscheinend kann man die auch public machen und das interessiert dann eh keinen.</p>
<p>Gibt es denn überhaupt Regeln bzw. Vorschläge, die man beachten muss, wenn man ein gutes Programm im OOP-Stil coden will ?</p>
<p>Mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/288124/was-gilt-als-gutes-oop</link><generator>RSS for Node</generator><lastBuildDate>Thu, 20 Aug 2026 03:16:13 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/288124.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 10 Jun 2011 16:14:40 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Was gilt als gutes OOP ? on Fri, 10 Jun 2011 16:14:40 GMT]]></title><description><![CDATA[<p>Servus Leute,</p>
<p>bin neulich heute auf diese Quelle gestossen :<br />
<a href="http://www.javaworld.com/javaworld/jw-09-2003/jw-0905-toolbox.html" rel="nofollow">http://www.javaworld.com/javaworld/jw-09-2003/jw-0905-toolbox.html</a></p>
<p>Klar, das ist für Java, aber Java ist auch OOP, bzw nur.</p>
<p>Ich dachte bis jetzt immer folgendes : Man macht Member-Variablen von Klassen wenn möglich private. Verwalten tut man sie dann mit getter und setter Funktionen. Ich dachte sowas zB sollte man für gutes OOP berücksichtig, scheint aber ja wohl garnicht zu sein. Anscheinend kann man die auch public machen und das interessiert dann eh keinen.</p>
<p>Gibt es denn überhaupt Regeln bzw. Vorschläge, die man beachten muss, wenn man ein gutes Programm im OOP-Stil coden will ?</p>
<p>Mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2076464</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2076464</guid><dc:creator><![CDATA[GutesOOP?]]></dc:creator><pubDate>Fri, 10 Jun 2011 16:14:40 GMT</pubDate></item><item><title><![CDATA[Reply to Was gilt als gutes OOP ? on Fri, 10 Jun 2011 16:33:09 GMT]]></title><description><![CDATA[<p>Ein getter und setter hat halt den Vorteil, dass man in der Zugriffsmethode eine bessere Kontolle über den Inhalt hat, bzw. weitere Berechnungen/Aktionen anstoßen kann. Ist das Alles <strong>nie</strong> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/26a0.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--warning"
      title=":warning:"
      alt="⚠"
    /> gewünscht, kann man für interne Zwecke die Member-Variable auch mal public machen. Als Schnittstelle nach außen empfiehlt es sich auf keinen Fall.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2076470</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2076470</guid><dc:creator><![CDATA[~m~m~]]></dc:creator><pubDate>Fri, 10 Jun 2011 16:33:09 GMT</pubDate></item><item><title><![CDATA[Reply to Was gilt als gutes OOP ? on Fri, 10 Jun 2011 16:41:03 GMT]]></title><description><![CDATA[<p>&lt;&lt;OOP Hasser&gt;&gt; <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Ich würde vor allem möglichst alles erstmal protected machen, private nutze ich eher selten. Getter und Setter die so aussehen:</p>
<pre><code class="language-cpp">void MyClass::SetVar(int val)
{
  m_val = val;
}

int MyClass::GetVar()
{
  return m_val;
}
</code></pre>
<p>Halte ich außerdem für extrem sinnlos. Das macht's irgendwie selten übersichtlicher. Wenn der &quot;Nutzer&quot; der Klasse eh vollen Zugriff auf eine Variable haben soll, warum dann nicht gleich public machen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2076473</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2076473</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Fri, 10 Jun 2011 16:41:03 GMT</pubDate></item><item><title><![CDATA[Reply to Was gilt als gutes OOP ? on Fri, 10 Jun 2011 16:45:25 GMT]]></title><description><![CDATA[<p>cooky451 schrieb:</p>
<blockquote>
<p>Ich würde vor allem möglichst alles erstmal protected machen, private nutze ich eher selten.</p>
</blockquote>
<p>Ich wär mit protected vorsichtig, zumindest für Membervariablen ist das imo extrem hässlich.</p>
<p>Warum Getter/Setter nicht gut sind steht eh schon im verlinkten Artikel.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2076477</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2076477</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Fri, 10 Jun 2011 16:45:25 GMT</pubDate></item><item><title><![CDATA[Reply to Was gilt als gutes OOP ? on Fri, 10 Jun 2011 16:52:35 GMT]]></title><description><![CDATA[<p>cooky451 schrieb:</p>
<blockquote>
<p>Halte ich außerdem für extrem sinnlos. Das macht's irgendwie selten übersichtlicher. Wenn der &quot;Nutzer&quot; der Klasse eh vollen Zugriff auf eine Variable haben soll, warum dann nicht gleich public machen?</p>
</blockquote>
<p>Der Sinn darin ist, wenn du irgendwann merkst, dass die Variablen eben doch noch so direkt gesetzt werden sollen, sondern du z.B bei einer Zahl noch den Bereich überprüfen willst o.ä. Dann kannst du das machen, ohne dass der Nutzer der Klasse das mitbekommt.</p>
<p>Wenn möglich sollte man natürlich eine solch direkte Veränderung der Klasse verhindern, aber wenn überhaupt, aber wenn, dann sollte man sie durch getter/setter schützen.</p>
<p>Ich habe z.B im Moment in einem Projekt einige Klassen, die praktisch nur aus setter/getter bestehen, da sie Daten aggregieren, aber dennoch beim setzen einiges an processing benötigen.</p>
<p>protected Member Variablen haben ähnliche Probleme, wie public Variablen und sollte sie daher auch eher vermeiden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2076483</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2076483</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Fri, 10 Jun 2011 16:52:35 GMT</pubDate></item><item><title><![CDATA[Reply to Was gilt als gutes OOP ? on Fri, 10 Jun 2011 17:02:25 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<p>Der Sinn darin ist, wenn du irgendwann merkst, dass die Variablen eben doch noch so direkt gesetzt werden sollen,</p>
</blockquote>
<p>Na gut ok, ist bei mir noch nie vorgekommen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>drakon schrieb:</p>
<blockquote>
<p>protected Member Variablen haben ähnliche Probleme, wie public Variablen und sollte sie daher auch eher vermeiden.</p>
</blockquote>
<p>Kannst du das näher beschreiben? Ich verstehe nicht ganz, was gegen protected sprechen soll.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2076490</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2076490</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Fri, 10 Jun 2011 17:02:25 GMT</pubDate></item><item><title><![CDATA[Reply to Was gilt als gutes OOP ? on Fri, 10 Jun 2011 17:08:26 GMT]]></title><description><![CDATA[<p>cooky451 schrieb:</p>
<blockquote>
<p>drakon schrieb:</p>
<blockquote>
<p>protected Member Variablen haben ähnliche Probleme, wie public Variablen und sollte sie daher auch eher vermeiden.</p>
</blockquote>
<p>Kannst du das näher beschreiben? Ich verstehe nicht ganz, was gegen protected sprechen soll.</p>
</blockquote>
<p>Abgeleitete Klassen können die Member einfach verändern? Wenn die Variablen const sind dann kannst du sie protected machen da sie dann sowieso in der Basisklasse initialisiert werden müssen, ansonsten isses aber in der Regel extrem hässlich. Wobei ich sowieso soweit gehen und sagen würde dass man mit Vererbung generell sparsam sein sollte, vor allem wenn es um nicht abstrakte Basen geht. Meistens kommt man einfach mit Interfaces zurecht und das resultierende Design ist viel flexibler.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2076491</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2076491</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Fri, 10 Jun 2011 17:08:26 GMT</pubDate></item><item><title><![CDATA[Reply to Was gilt als gutes OOP ? on Fri, 10 Jun 2011 17:07:04 GMT]]></title><description><![CDATA[<p>cooky451 schrieb:</p>
<blockquote>
<p>drakon schrieb:</p>
<blockquote>
<p>protected Member Variablen haben ähnliche Probleme, wie public Variablen und sollte sie daher auch eher vermeiden.</p>
</blockquote>
<p>Kannst du das näher beschreiben? Ich verstehe nicht ganz, was gegen protected sprechen soll.</p>
</blockquote>
<p>Naja, eben gesetzt der Fall, dass du keinen trivialen getter/setter hast. Kommt dann einer und meint, dass er von der Klasse erben will und macht da seine Erweiterung. Er sieht, dass die Variable protected ist und verändert sie dann so, wie er mag. Dann ruft er eine Funktion der Basisklasse auf und die geht davon aus, dass die Invariante für diese Variable (z.B &gt; 10 für ein int) gegeben ist (da er ja alle Zugriffe durch den setter kontrolliert) und das ganze geht dann kaputt.</p>
<p>Wenn du also eine Variable protected machst, dann kannst du sie eigentlich auch gleich public machen, dann achtest du wenigstens darauf, dass die Variable irgendeinen Zustand haben kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2076492</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2076492</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Fri, 10 Jun 2011 17:07:04 GMT</pubDate></item><item><title><![CDATA[Reply to Was gilt als gutes OOP ? on Fri, 10 Jun 2011 17:11:49 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<p>Er sieht, dass die Variable protected ist und verändert sie dann so, wie er mag.</p>
</blockquote>
<p>Sein Fehler <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /><br />
Aber ok, verstehe was du meinst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2076495</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2076495</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Fri, 10 Jun 2011 17:11:49 GMT</pubDate></item><item><title><![CDATA[Reply to Was gilt als gutes OOP ? on Fri, 10 Jun 2011 17:18:44 GMT]]></title><description><![CDATA[<p>Kann man also generell sagen, dass es nicht so wichtig ist ? Bzw. dass es schlicht weg auf die Situation an kommt und sowohl private als auch public gleich oft benutzt werden ?<br />
Dachte halt bis jetzt immer, man sollte versuchen die Variablen public zu machen. Nur wenns unbedingt nötig ist public.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2076499</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2076499</guid><dc:creator><![CDATA[GutesOOP?]]></dc:creator><pubDate>Fri, 10 Jun 2011 17:18:44 GMT</pubDate></item><item><title><![CDATA[Reply to Was gilt als gutes OOP ? on Fri, 10 Jun 2011 17:21:24 GMT]]></title><description><![CDATA[<p>cooky451 schrieb:</p>
<blockquote>
<p>&lt;&lt;OOP Hasser&gt;&gt;</p>
</blockquote>
<p>Nicht-Kenner triffts besser. Welchen Vorteil Getter und Setter haben, ist wohl eines der ersten Dinge, die einem bei OOP erklärt werden.</p>
<p>cooky451 schrieb:</p>
<blockquote>
<p>Ich würde vor allem möglichst alles erstmal protected machen, private nutze ich eher selten.</p>
</blockquote>
<p>Finde ich eine schlechte Idee. Man sollte die Kapselung so stark wie möglich gestalten, also standardmässig <code>private</code> . <code>protected</code> bei Membervariablen habe ich fast nie.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2076503</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2076503</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 10 Jun 2011 17:21:24 GMT</pubDate></item><item><title><![CDATA[Reply to Was gilt als gutes OOP ? on Fri, 10 Jun 2011 17:26:16 GMT]]></title><description><![CDATA[<p>Der Artikel enthält etwas viel Bla Bla, aber in gewissen Punkten hat er Recht.</p>
<p>Why getter and setter methods are evil schrieb:</p>
<blockquote>
<p>Getter and setter methods (also known as accessors) are dangerous for the same reason that public fields are dangerous: They provide external access to implementation details.</p>
</blockquote>
<p>Zu einem gewissen Teil stimmt das, vor allem wenn man Member 1:1 und präventiv auf entsprechende Getter/Setter abbildet. Auf gewisse Eigenschaften muss vor aussen gar nicht zugegriffen werden, oder der Zugriff muss nur lesend oder schreibend erfolgen, oder indirekt durch eine Aktion. Allerdings gibt es sehr wohl Situationen, in denen man Eigenschaften der Klasse direkt ändern muss, ganz ohne Setter/Getter kommt man nicht vernünftig aus.</p>
<p>GutesOOP? schrieb:</p>
<blockquote>
<p>Kann man also generell sagen, dass es nicht so wichtig ist ? Bzw. dass es schlicht weg auf die Situation an kommt und sowohl private als auch public gleich oft benutzt werden ?</p>
</blockquote>
<p>Nein, <code>public</code> sollte sparsam eingesetzt werden. Halte Schnittstellen schmal. Gerade in C++ hast du im Gegensatz zu Java die Möglichkeit, die Funktionalität einer Klasse durch freie Funktionen zu erweitern. Nutze sie.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2076508</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2076508</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 10 Jun 2011 17:26:16 GMT</pubDate></item><item><title><![CDATA[Reply to Was gilt als gutes OOP ? on Fri, 10 Jun 2011 17:28:02 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>cooky451 schrieb:</p>
<blockquote>
<p>&lt;&lt;OOP Hasser&gt;&gt;</p>
</blockquote>
<p>Nicht-Kenner triffts besser. Welchen Vorteil Getter und Setter haben, ist wohl eines der ersten Dinge, die einem bei OOP erklärt werden.</p>
</blockquote>
<p>Ja. Und erst recht spät lernt man, sie korrekt zu meiden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2076509</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2076509</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Fri, 10 Jun 2011 17:28:02 GMT</pubDate></item><item><title><![CDATA[Reply to Was gilt als gutes OOP ? on Fri, 10 Jun 2011 17:33:41 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>cooky451 schrieb:</p>
<blockquote>
<p>&lt;&lt;OOP Hasser&gt;&gt;</p>
</blockquote>
<p>Nicht-Kenner triffts besser.</p>
</blockquote>
<p>War damit gemeint, wollte mich nur nicht gleich vor allen outen.</p>
<p>Ich verstehe den Sinn hinter Gettern/Settern schon, aber halt nur wenn sie mehr machen als &quot;m_x = x&quot; und &quot;return m_x&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2076510</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2076510</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Fri, 10 Jun 2011 17:33:41 GMT</pubDate></item><item><title><![CDATA[Reply to Was gilt als gutes OOP ? on Fri, 10 Jun 2011 17:35:26 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>Ja. Und erst recht spät lernt man, sie korrekt zu meiden.</p>
</blockquote>
<p>Das ist ein generelles Problem, das der OOP-Hype mit sich bringen kann. Andere Beispiele sind der übermässige Einsatz von Vererbung, das Immer-polymorph-Machen von Basisklassen oder das Vermeiden globaler Funktionen (&quot;nicht objektorientiert, weil nicht in Klasse&quot;).</p>
<p>Du bringst es gut auf den Punkt: Schwieriger als die korrekte Verwendung ist die korrekte Nicht-Verwendung <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="🙂"
    /></p>
<p>cooky451 schrieb:</p>
<blockquote>
<p>Ich verstehe den Sinn hinter Gettern/Settern schon, aber halt nur wenn sie mehr machen als &quot;m_x = x&quot; und &quot;return m_x&quot;.</p>
</blockquote>
<p>Auch solche Getter/Setter können Sinn machen, besonders weil man jederzeit die Möglichkeit hat, mehr Funktionalität zu implementieren, ohne User-Code zu beeinträchtigen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2076511</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2076511</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 10 Jun 2011 17:35:26 GMT</pubDate></item><item><title><![CDATA[Reply to Was gilt als gutes OOP ? on Fri, 10 Jun 2011 18:11:38 GMT]]></title><description><![CDATA[<p>Was haben Getter und Setter mit OOP zu tun?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2076525</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2076525</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Fri, 10 Jun 2011 18:11:38 GMT</pubDate></item><item><title><![CDATA[Reply to Was gilt als gutes OOP ? on Fri, 10 Jun 2011 18:45:33 GMT]]></title><description><![CDATA[<p>Was machen die die keine Getter und Setter wollen, bei folgendem Beispiel?</p>
<p>Bei einem 3D-Modellierungs-Programm hat man Objekte (Boxen, Linien...), denen kann man eigentlich auch immer Namen geben. Dazu gibt es in irgendeinem Editor, in dem auch noch alles mögliche andere eingestellt werden kann, auch ein Feld für den Namen. Wenn jetzt ein User dort einen Namen eingibt, ruft ihr dann nicht object.setName(...) auf? Was dann?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2076534</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2076534</guid><dc:creator><![CDATA[butterbeidiefische]]></dc:creator><pubDate>Fri, 10 Jun 2011 18:45:33 GMT</pubDate></item><item><title><![CDATA[Reply to Was gilt als gutes OOP ? on Fri, 10 Jun 2011 18:56:01 GMT]]></title><description><![CDATA[<p>butterbeidiefische schrieb:</p>
<blockquote>
<p>Dazu gibt es in irgendeinem Editor, in dem auch noch alles mögliche andere eingestellt werden kann, auch ein Feld für den Namen. Wenn jetzt ein User dort einen Namen eingibt, ruft ihr dann nicht object.setName(...) auf? Was dann?</p>
</blockquote>
<p>Doch, da schon.<br />
Aber im Spiel wird's vermutlich kein setName geben, sondern im Konstruktor wird der Name geladen und nie mehr verändert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2076538</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2076538</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Fri, 10 Jun 2011 18:56:01 GMT</pubDate></item><item><title><![CDATA[Reply to Was gilt als gutes OOP ? on Fri, 10 Jun 2011 19:10:39 GMT]]></title><description><![CDATA[<p>Kann es sein, dass die Getter/Setter-Gegner davon ausgehen, dass man total dämlich programmiert? Also anstatt vector.push_back irgendwie getSize, getArrayPointer, ... setArrayPointer, setSize(++size), setValue...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2076545</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2076545</guid><dc:creator><![CDATA[butterbeidiefische]]></dc:creator><pubDate>Fri, 10 Jun 2011 19:10:39 GMT</pubDate></item><item><title><![CDATA[Reply to Was gilt als gutes OOP ? on Fri, 10 Jun 2011 19:11:12 GMT]]></title><description><![CDATA[<p>butterbeidiefische schrieb:</p>
<blockquote>
<p>object.setName(...) auf? Was dann?</p>
</blockquote>
<p>Noe, ich mach das mit <a href="http://object.name" rel="nofollow">object.name</a> = &quot;blubb&quot; <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2076546</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2076546</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Fri, 10 Jun 2011 19:11:12 GMT</pubDate></item><item><title><![CDATA[Reply to Was gilt als gutes OOP ? on Fri, 10 Jun 2011 19:13:50 GMT]]></title><description><![CDATA[<p>cooky451 schrieb:</p>
<blockquote>
<p>butterbeidiefische schrieb:</p>
<blockquote>
<p>object.setName(...) auf? Was dann?</p>
</blockquote>
<p>Noe, ich mach das mit <a href="http://object.name" rel="nofollow">object.name</a> = &quot;blubb&quot; <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>Was dumm wäre, wenn du auch noch etwas anderes machen willst, z.B. Callbacks für nameChanged.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2076547</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2076547</guid><dc:creator><![CDATA[butterbeidiefische]]></dc:creator><pubDate>Fri, 10 Jun 2011 19:13:50 GMT</pubDate></item><item><title><![CDATA[Reply to Was gilt als gutes OOP ? on Fri, 10 Jun 2011 19:19:29 GMT]]></title><description><![CDATA[<p>Sorry aber dein Post kam irgendwie so sinnlos, da musste das einfach sein <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2076551</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2076551</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Fri, 10 Jun 2011 19:19:29 GMT</pubDate></item><item><title><![CDATA[Reply to Was gilt als gutes OOP ? on Sat, 11 Jun 2011 16:00:24 GMT]]></title><description><![CDATA[<p>Implementierungsdetails einer Klasse privat zu machen gehört nun zu den absoluten Basics von OOP. Nur weil du eine Klasse schreibst und vor Daten ein private schreibst,programmierst du noch lange nicht objektorientiert.<br />
Gute OOP fördert die Erweiterbarkeit, Flexibilität und Wartbarkeit von Software durch Abstraktion, Kapselung und Reduzieren von Abhängigkeiten (das Verhindern einer Abhängigkeit zu irgendeiner bestimmten Variable gehört da als einfachstes Mittel dazu). Als Einstieg in gute OOP kann ich die sog. SOLID Prinzipien als Lesestoff empfehlen (google solid oop).<br />
Über den Sinn und Unsinn von Getter/Setter wird hier ja fast wöchentlich erneut diskutiert, ich weiß gar nicht warum. Daten von nicht trivialen Typen sind privat und wenn die niemanden was angehen schreibt ich keine Getter/Setter. Man schreibt grundsätzlich nichts was man nicht braucht. Und wenn man so einfache Daten wie einen Namen manipulieren oder auf den Bildschirm schreiben will, dann gibt es dafür halt eine öffentliche Schnittstelle. Man könnte zwar auch die Klasse selber auf den Bildschirm schreiben lassen, aber die sich daraus ergebene Abhängigkeit zu Ein-/Ausgabe Techniken ist viel schlimmer als eine zusätzliche Schnittstelle. Mit <code>const</code> hat man in C++ ja auch eine schöne Kontrolle über diese Zugriffe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2076780</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2076780</guid><dc:creator><![CDATA[brotbernd]]></dc:creator><pubDate>Sat, 11 Jun 2011 16:00:24 GMT</pubDate></item><item><title><![CDATA[Reply to Was gilt als gutes OOP ? on Sat, 11 Jun 2011 16:56:22 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>cooky451 schrieb:</p>
<blockquote>
<p>&lt;&lt;OOP Hasser&gt;&gt;</p>
</blockquote>
<p>Nicht-Kenner triffts besser. Welchen Vorteil Getter und Setter haben, ist wohl eines der ersten Dinge, die einem bei OOP erklärt werden.</p>
</blockquote>
<p>Leider wird selbst (oder gerade?) an Unis auch nicht viel mehr gelehrt. Es gibt zu viele Entwickler die Getter und Setter mit Kapselung gleich setzen und null Ahnung haben wieviel mehr hinter diesem Begriff steckt.</p>
<p>Dazu wird noch alles in eine Klassenhierarchie gestopft und schon hat man ein tolles OO-System <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>Ich setze Getter/Setter (bzw. Properties in C#) nur für relativ unkritische Datenfelder ein. Zu viel Logik in den Xettern ist verwirrend und verursacht jede Menge klasseninterne Abhängigkeiten. Dann packe ich das lieber in eine Methode mit sprechendem Namen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2076786</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2076786</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sat, 11 Jun 2011 16:56:22 GMT</pubDate></item></channel></rss>