2016-07-28 24 views

Antwort

1

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.