Es gibt thread safe Singleton, aber wenn wir Singleton in mehreren Threads verwenden? Wann kann es hilfreich sein?Beispiele für die Verwendung Thread sicher Singleton in mehreren Threads
Antwort
Ich benutze staatenlose Singletons als Implementierungen einer Strategie. Da sie staatenlos sind, sind sie auch threadsicher und es gibt kein Problem sie zu testen.
Wo Sie Probleme bekommen, ist mit Stateful Singletons. Dies führt zu mehr Interaktionen, insbesondere in einem Multi-Thread-Kontext, aber nur das Unit-Testen eines Stateful Singleton in einem Thread ist ein Problem (d. H. Sie müssen den Status zwischen Tests zurücksetzen). Aus diesem Grund sehen viele Singletons als ein Anti-Pattern, das vermieden werden soll.
Ein besserer Ansatz für Stateful Singletons ist die Verwendung der Abhängigkeitsinjektion. Auf diese Weise erstellt der Code, der die Komponenten erstellt, nur ein Objekt und das wird an alle Komponenten weitergegeben, die es benötigen.
"Diese Frage zeigt keinen Forschungsaufwand." – jaco0646