Singletons in C++
-
ah, du willst deine globale variable als singleton verkaufen. ja, da ist wohl createInstance() der weg in C.
-
Ich will gar nichts, das war nur ein Gedanke. Und nach der originalen Definition im GoF-Buch ist die Absicht eines Singletons folgende:
Ensure a class only has one instance, and provide a global point of access to it.
...und das ist ja immer noch gewährleistet. Eure Definiton erweitert das wohl noch darum, dass ein Singleton jederzeit verfügbar ist. Ich halte createInstance() also schon noch für ok, auch wenn es mir auch nicht grad gut gefällt.
-
nur waehrend main()? Also waehrend der Laufzeit des Programmes?
Wo ist da ein Spezialfall?ein globales objekt wird vor main() erzeugt und nach main() zerstört.
Wenn du aber den Singleton immer selber erstellen und zerstoeren willst, willkommen in der Welt von RAII. Dann braucht man den ganzen Aufwand von Singletons ja garnicht.
was meinst du mit "immer"? singletons dieser art werden in der regel einmal erzeugt (zum programmstart) und einmal zerstört (zum programmende). geht auch anders, wenn man es will, aber dafür nimmt man lieber einen anderen singleton, der dafür gebaut ist.
Ein Singleton bietet naemlich noch ein entscheidendes Feature: er wird nur dann erstellt wenn er gebraucht wird.
wenn das im einzelfall wichtig ist, dann nimmt man auch einen singleton, der das leistet. meiner tut das nicht und das ist auch so gewollt.
schade, dass hier nicht viel mehr als "dumm", "ich weiß es besser" und am-thema-vorbei-gerede kommt. nicht sehr überzeugend.