Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Früher oder später findet jeder raus warum man um Singletons einen großen Bogen machen sollte
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 |
class CConfig { ... // ich spar mir mal den überflüssigen Code... // CConfig ist ein Singelton! static CConfig *instance(); int get_antizap_range(); } #define ANTI_ZAP_RANGE CConfig::instance()->get_antizap_range() |
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Früher oder später findet jeder raus warum man um Singletons einen großen Bogen machen sollte
Das finde ich ein bisschen pessimistisch.
Ich habe hier einen Firefox, klicke auf Hilfe->"Über Firefox", da kommt so n Fenster mit ner Version. Ich mach das nochmal, und es erscheint kein zweites Fenster. Das ist doch mal ein klassischer Anwendungsfall für ein Singleton.
Oder eine Konfigurationsklasse, die bei der ersten Verwendung initialisiert wird, und später per Singeton von überall aus verwendet werden kann, ohne jedesmal neu initialisiert werden zu müssen, und ohne alle Interfaces aufzublähen, weil Pointer weitergegeben werden müssen. Und vor allem: ohne dass irgend ein Progger (und sei ich es selbst in einem Anfall geistiger Umnachtung) eine zweite Konfigurationsklasse erzeugt, lustig Werte ändert, und sich wundert, warum sich die Änderungen nur auf einen Teil des Codes auswirkten.
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 |
hWnd = CreateWindowEx (NULL, szClassName, "Das erste Fenster!", WS_OVERLAPPEDWINDOW | WS_VISIBLE, 100, 100, 300, 250, NULL, NULL, hInst, NULL); |
Werbeanzeige