<?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[Factory als Singleton - in diesem Fall vermeidbar?]]></title><description><![CDATA[<p>Es geht mir um eine Design-Frage wie ich ein Pattern eingesetzt habe.<br />
Ich habe sehr viele Klassen und eine Factory. Die Factory liefert teils Referenzen auf existierende Objekte wie Logbuch, Texturen, bestehende Windows-Fenster etc nach draussen an den User dieser Factory (ein Programm) und teils auch neue Objekte die über die Factory generiert werden. Damit bestehende Logbücher aber offen bleiben, ist diese Klasse ein Singleton und die Klasse Logbuch ein Member dieser Factory. So kann ich im Programm (User der API) bequem auf diese Informationen zugreifen. Da geht es auch um Dinge wie Bildschirmgröße, vorhandene Texturen etc.</p>
<p>Jetzt die Frage hierzu:<br />
Lässt es sich irgendwie vermeiden dass diese Factory als Singleton aufgestellt ist? Wie könnte man im resultierenden Programm das lösen?<br />
Wenn man nun diese Factory in der &quot;Hauptklasse&quot; oder main() des Programmes erstellt, müsste man diese Factory ja wieder an alle anderen Klassen weiterleiten. Dinge wie das Logbuch müssen eben zentral bestehen, damit in der Reihenfolge reingeschrieben werden kann, wie die Nachrichten eingehen. Oder sollte man während des Betriebes immer wieder öffnen und schliessen und quasi in der Logbuchklasse mit append arbeiten? Würde man diese Funktionen statisch machen, wäre es ja quasi auch ein einzelnes Singleton.</p>
<p>Nicht dass mich das Singleton stört, aber ich würde gerne wissen wie hier Profis an die Sache rangehen. Wenn Ihr so nett seid und mich da informiert natürlich :).<br />
rya.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/267987/factory-als-singleton-in-diesem-fall-vermeidbar</link><generator>RSS for Node</generator><lastBuildDate>Wed, 02 Sep 2026 04:03:09 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/267987.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 02 Jun 2010 12:54:06 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Factory als Singleton - in diesem Fall vermeidbar? on Wed, 02 Jun 2010 12:54:06 GMT]]></title><description><![CDATA[<p>Es geht mir um eine Design-Frage wie ich ein Pattern eingesetzt habe.<br />
Ich habe sehr viele Klassen und eine Factory. Die Factory liefert teils Referenzen auf existierende Objekte wie Logbuch, Texturen, bestehende Windows-Fenster etc nach draussen an den User dieser Factory (ein Programm) und teils auch neue Objekte die über die Factory generiert werden. Damit bestehende Logbücher aber offen bleiben, ist diese Klasse ein Singleton und die Klasse Logbuch ein Member dieser Factory. So kann ich im Programm (User der API) bequem auf diese Informationen zugreifen. Da geht es auch um Dinge wie Bildschirmgröße, vorhandene Texturen etc.</p>
<p>Jetzt die Frage hierzu:<br />
Lässt es sich irgendwie vermeiden dass diese Factory als Singleton aufgestellt ist? Wie könnte man im resultierenden Programm das lösen?<br />
Wenn man nun diese Factory in der &quot;Hauptklasse&quot; oder main() des Programmes erstellt, müsste man diese Factory ja wieder an alle anderen Klassen weiterleiten. Dinge wie das Logbuch müssen eben zentral bestehen, damit in der Reihenfolge reingeschrieben werden kann, wie die Nachrichten eingehen. Oder sollte man während des Betriebes immer wieder öffnen und schliessen und quasi in der Logbuchklasse mit append arbeiten? Würde man diese Funktionen statisch machen, wäre es ja quasi auch ein einzelnes Singleton.</p>
<p>Nicht dass mich das Singleton stört, aber ich würde gerne wissen wie hier Profis an die Sache rangehen. Wenn Ihr so nett seid und mich da informiert natürlich :).<br />
rya.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1905885</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1905885</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Wed, 02 Jun 2010 12:54:06 GMT</pubDate></item><item><title><![CDATA[Reply to Factory als Singleton - in diesem Fall vermeidbar? on Wed, 02 Jun 2010 13:08:06 GMT]]></title><description><![CDATA[<p>Wieso ist das Logbuch kein Singleton?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1905895</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1905895</guid><dc:creator><![CDATA[brotbernd]]></dc:creator><pubDate>Wed, 02 Jun 2010 13:08:06 GMT</pubDate></item><item><title><![CDATA[Reply to Factory als Singleton - in diesem Fall vermeidbar? on Wed, 02 Jun 2010 13:17:44 GMT]]></title><description><![CDATA[<p>Weil ziemlich viele Informationen ständig verfügbar sein sollten bzw müssen wie Größe des Fensters/der Fenster, geladene Resourcen etc. Da müssen viele Klassen darauf zugreifen wie GUI-Klassen, damit sie ihren Inhalt ordentlich positionieren können.<br />
Da war meine Entscheidung halt alles in eine Factory zu packen die als Singleton dient und diese Informationen bereithält, bzw Referenzen der Klassen die verwendet werden.<br />
Was vorgehalten wird:<br />
1 Logbuch, Offene Fenster, Resourcen-Manager mit Informationen über geladenene Dateien (welcher die Referenzen auf geladene Resourcen liefert).<br />
Ich hab halt nur entsprechende Kritik bekommen dass das so schlechtes Design wäre, aber ich habe die Befürchtung, dass ich hier mit einem Forenpost nicht viel erreiche, da ich kaum Code posten kann, da ich ja die ganzen Struktur hier darlegen müsste :D. Und das wäre glaub ich bei mehr als ~300.000 Zeilen Code etwas zuviel... <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="🤡"
    /><br />
rya.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1905909</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1905909</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Wed, 02 Jun 2010 13:17:44 GMT</pubDate></item><item><title><![CDATA[Reply to Factory als Singleton - in diesem Fall vermeidbar? on Wed, 02 Jun 2010 13:26:52 GMT]]></title><description><![CDATA[<p>Scorcher24 schrieb:</p>
<blockquote>
<p>alles in eine Factory zu packen</p>
</blockquote>
<p>Alles an einem Ort zu lagern ist zwar für ordnungsliebende Menschen verlockend,<br />
aber selten gutes Design. Wer nur wissen will, wie groß der Bildschirm ist, braucht keinen Zugriff auf ein Logbuch. Normalerweise gibt man einer Klasse/Funktion/... so wenig Verantwortlichkeiten/Zuständigkeiten wie möglich.<br />
Wenn deine Factory nur ein Singleton ist, weil das Logbuch einmalig ist ist das schlecht. Wieso dann nicht einfach das Logbuch als Singleton implementieren (oder darüber nachdenken ohne Singleton auszukommen) ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1905920</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1905920</guid><dc:creator><![CDATA[brotbernd]]></dc:creator><pubDate>Wed, 02 Jun 2010 13:26:52 GMT</pubDate></item></channel></rss>