ah ja ok so gehts, danke
aber wieso keine singeltons? im buch spricht man eigentlich eher positiv von ihnen
Im Buch wirds im Grunde sogar genannt, aber ignoriert. Singletons sind global. Das ist dir sicher daran aufgefallen, dass du außerhalb der Klassendefinition die Membervariable, die das Singleton speichert, initialisieren musst. Das ist natürlich schon der erste Grund, global ist böse und gehört verboten.
Soweit ich es verstanden habe, ist das große tatsächliche Risiko von Singletons aber, wenn mehr als nur ein Singleton existiert und diese miteinander interagieren. Speziell beim Löschen der Singletons. Globale Variablen werden in einer Reihenfolge gespeichert und rückwärts wieder freigegeben (ähnliches Prinzip wie beim Stack). Wenn jetzt Singleton A allerdings bei seinen Aufräumarbeiten Singleton B braucht, dieses aber schon gelöscht ist, kann das böse Folgen haben. Soweit mein Verständnis des Problems. Ich habe mir dieselbe Frage gestellt und auf stackoverflow einen Thread dazu gefunden, das ist hier meine Quelle