Auf Googles Singleton-Detector gestoßen und mir noch einmal die Begründungen angeschaut, weshalb Singletons böse sind. Das ist alles nicht wirklich neu, wiewohl aus meiner Sicht ein Singleton durchaus Sinn machen kann (gilt die Kritik nicht eigentlich jeder statischen Factory-Methode?).
Wie auch immer, für mich ist guter Stil, zu begründen, weshalb man ein Singleton verwendet. Ebenso, wie man manchmal explizit nichts in einem Code-Block ausführen möchte:
if(this)
{
do();
}
else if (scary)
{
// empty on purpose!
}
else
{
doOther();
}
(da gäbs sicherlich bessere Beispiele, ein besseres wäre der leere private Konstruktor von nicht instantiierbaren Klassen), sollte man im JavaDoc eines Singletons erwähnen, dass es sich um eines handelt, weshalb es als Singleton verwendet wird und ggf. wie es getestet werden kann resp. welche Besonderheiten für das Testen von Klassen anfallen, die das Singleton verwenden.
Das geht höchstwahrscheinlich darüber hinaus, was z.B. in Spring mit den DAO-Klassen erfolgt (sollen die alle schlecht sein?), ist aber gerade für die Arbeit im Team nützlich.
Schreibe einen Kommentar