globale Variablen vermeiden
-
Ich habe nie gesagt, nimm ein Singleton, sondern ich habe gefragt, ob ein Singleton in der Situation eine Lösung sein könnte.
Meine Antwort bezog sich nicht direkt auf dich oder dein Posting. Es war viel allgemeiner gemeint. Als Reaktion auf das hier doch recht häufige auftretene "Nimm doch ein Singleton" (inkl. Link auf meine Webseite).
In den meisten Fällen halte ich diesen Rat für falsch, da ein Singleton eben keine wirksame Medizin gegen globale Variablen ist.
Dann ist es außerdem so, dass einige der Funktionen Member des Singletons werden, was einerseits den globalen Raum freihält und andereseits für mehr übersicht sorgen kann (muss aber nicht!!!).
Außerdem ist es einfacher ein Singleton mit seinen Membern in einem neuen Projekt zu verwenden, als ein Haufen von Funktionen zusammenzusuchen.Ich sehe ehrlich gesagt nicht, in wie weit das nur für ein Singleton, nicht aber für eine ganz normale Klasse gelten soll.
Gruppierung und Wiederverwendung hat ja primär nichts mit "Anzahl von Instanzen" zu tun.
Das sind meine erfahrungen. Vielleicht sieht es bei euch ja anders aus.
Meine Erfahrung ist, dass viele nur ein DP kennen (nämlich Singleton). Dieses dann leichtfertig als Ersatz für globale Variablen verwenden und dann meinen, sie hätten irgend ein Problem beseitigt. Aber das habe ich ja oben schon geschrieben
[ Dieser Beitrag wurde am 23.06.2003 um 18:42 Uhr von HumeSikkins editiert. ]
-
Original erstellt von HumeSikkins:
**> 'Alle Funktionen und globalen Variablen packen wir jetzt in die Klasse "Programm"!'Ist meiner Meinung nach nicht unbedingt ein schlechter Anfang. Von da aus kann man dann ganz gut mit dem Refactoring beginnen. Mit etwas glück sieht man so leichter, wer hauptsächlich mit bestimmten Daten arbeitet und wie Operationen mit diesen zusammenhängen. Nach und nach kann man dann die Klasse Programm zerlegen und mit etwas Glück bekommt man mehrere feine, geschlossene, selbstverantwortliche und zufriedene Klassen.**
Das dürfte ähnlich dazu sein, die einzelnen Funktionen in verschiedene Dateien (Moduln) zu verteilen und die benötigten Daten lokaler zu machen. Ansich hilft es nichts, aber wenn man den Vorgang gleichzeitig dazu benutzt um über das Programm Nachzudenken, wieso nicht?
-
Original erstellt von Spieleprogrammierer:
Lass sie doch global, wen störts? Ist sogar Vorteilhaft.bloedsinn
-
Meine Erfahrung ist, dass viele nur ein DP kennen (nämlich Singleton).
ja, die ganzen Spieleprogrammierer meinen das andauernd nutzen zu müssen.
-
Meine Erfahrung ist, dass viele nur ein DP kennen (nämlich Singleton). Dieses dann leichtfertig als Ersatz für globale Variablen verwenden und dann meinen, sie hätten irgend ein Problem beseitigt. Aber das habe ich ja oben schon geschrieben
Ich kenne auch nicht sonder lich viele DPs. Visitor, und noch zwei drei.
Ich sehe ehrlich gesagt nicht, in wie weit das nur für ein Singleton, nicht aber für eine ganz normale Klasse gelten soll.
Ich bezog mich nicht auf Klassen, sondern darauf, dass der urspröüngliche Author einen Haufen globaler Funktionen hat, die irgendwie von dieser Globalen Variable abhängen.
Klar könnte es auch sein, das diese globale Variable möglicherweise am besten ein statisches Mitglied einer "normalen" Klasse würde. Nur ist es sinnvoll diese globalen Variablen in eine Klasse zu packen? Um irgendwas sinnvolles hierzu zu sagen, müssten wir IMHO besser über sein Programm bescheid wissen.
-
ok, ganz dumme Frage:
was ist ein DP?
-
Design Pattern