Was ist so schlimm an Singles?

Das Singleton-Muster ist ein vollwertiges Mitglied der GoF's patterns book, aber es scheint in letzter Zeit in der Entwicklerwelt eher verwaist zu sein. Ich verwende immer noch ziemlich viele Singletons, vor allem für Fabrikklassen, und obwohl man bei Multithreading-Problemen etwas vorsichtig sein muss (wie eigentlich bei jeder Klasse), verstehe ich nicht, warum sie so schrecklich sind.

Stack Overflow scheint vor allem davon auszugehen, dass alle der Meinung sind, dass Singletons böse sind. Aber warum?

Bitte unterstützen Sie Ihre Antworten mit "Fakten, Referenzen oder spezifischem Fachwissen"

  1. Sie kann leicht als globale Variable (ab)verwendet werden.
  2. Klassen, die von Singletons abhängen, sind relativ schwieriger isoliert zu testen.
Kommentare (0)

Siehe Wikipedia Singleton_pattern

Es wird von einigen Leuten auch als Anti-Pattern betrachtet, da sie der Meinung sind, dass es übermäßig genutzt wird und unnötige Einschränkungen in Situationen einführt, in denen eine einzige Instanz einer Klasse eigentlich nicht erforderlich ist.[1][2][3][4]

Referenzen (nur relevante Referenzen aus dem Artikel)

  1. ^ Alex Miller. Muster, die ich hasse #1: Singleton, Juli 2007
  2. ^ Scott Densmore. Warum Singletons böse sind, Mai 2004
  3. ^ Steve Yegge. Singletons gelten als dumm, September 2004
  4. ^ J.B. Rainsberger, IBM. Nutzen Sie Ihre Singletons weise, Juli 2001
Kommentare (2)

Da es sich im Grunde um objektorientierte globale Variablen handelt, können Sie Ihre Klassen in der Regel so gestalten, dass Sie sie nicht benötigen.

Kommentare (4)