Winnetoupopper
Grünschnabel
Thomas Darimont hat gesagt.:Hallo!
wenn man nämlich den Konstruktor als protected deklariert kann man noch von dieser Klasse ableiten, was bei einem privaten Konstruktor nicht mehr möglich wäre.
Auch wenn der Topicbezug nur noch durch das Wort "Grundsatzfrage" hergestellt wird, muss ich hier zur Vorsicht aufrufen.
Ein protected Singleton ist schon an sich ne offensive Sache, in Java sogar fatal.
1. Erfordert das Ableiten eines Singletons das -vollkommene- Überschreiben der getInstance-Methode, ein "super" befreit hier nicht.. Das ist sehr offensiv und sollte vor allem in größeren Projekten (> 10 Entwickler) nur mit Vorsicht angewandt werden.
2. In Java wird die Sichtbarkeit "protected" leider als Ableitung von Package betrachtet (OO-technisch natürlich ne Katastrophe!), so kann die erste Direktive eines Singletons (es gibt nur EINS) ausgehebelt werden:
(wie kann man Bilder einfügen?)
http://www.pics.winnetoupopper.de/Multiton.jpg
Code:
package de.tutorials;
public class Singleton2Multiton
{
public Singleton2Multiton( int pAnzahlSingletons )
{
for (int i = 0; i < pAnzahlSingletons; i++)
{
new Singleton();
}
}
}
gruß Kev
ach ja, synchronized (Singleton.class) ist natürlich godlike, auch ich hatte immer Glück *g*
Zuletzt bearbeitet: