Java Singleton mit Vererbung

8

Ich habe eine Reihe von Singleton-Klassen und möchte den Standardcode vermeiden. Hier ist, was ich jetzt habe:

%Vor%

Das funktioniert und es ist nichts falsch daran, außer dass ich viele Unterklassen von Mammal habe, die die Methode getInstance() replizieren müssen. Ich würde so etwas wie möglich bevorzugen:

%Vor%

Wie mache ich das?

    
michelemarcon 10.06.2011, 15:55
quelle

3 Antworten

3

Sie können nicht, da Konstruktoren weder vererbt noch überschrieben werden können. Die new Mammal() in Ihrem gewünschten Beispiel erstellt nur eine Mammal , nicht eine ihrer Unterklassen. Ich schlage vor, du schaust dir das Factory-Muster an oder gehst zu etwas wie Spring, das genau für diese Situation bestimmt ist.

    
Jim Garrison 10.06.2011, 16:02
quelle
2

Sie können enum verwenden, um Singletons zu erstellen.

%Vor%     
Peter Lawrey 10.06.2011 16:06
quelle
0

Machen Sie Ihren Konstruktor privat. Dies verhindert, dass Ihre Klasse von anderen Klassen geerbt wird.

Oder der beste Weg, um ein Singleton zu erstellen, besteht darin, dass Sie Ihrer Klasse eine Enumeration mit einer Enumeration erstellen (Josh Block)

    
Talha Ahmed Khan 10.06.2011 16:09
quelle