Ist die unten aufgeführte Klasse ein Singleton? Da der Konstruktor als public deklariert ist, kann ich daraus schließen, dass die Klasse ein Singleton mit falscher Implementierung ist?Ist diese Klasse ein Singleton?
public class CreateDevice extends Functionality{
private static Simulator simulator;
ConnectionDB connect = ConnectionDB.getInstance();
public CreateDevice(Simulator simulator){
this.simulator = simulator;
}
private static CreateDevice instance;
synchronized public static CreateDevice getInstance() {
if(instance == null){
instance = new CreateDevice(simulator);
}
return instance;
}
}
Eine Klasse kann kein Singleton sein, nur Objekte können Objekte sein, wenn sie einzigartig sind. Aber Klassen können das Singleton-Muster implementieren, um die Instanziierung auf ein Objekt zu beschränken :) – zapl
Randbemerkung: 'simulator' sollte nicht' statisch' sein, wenn es im 'CreateDevice'-Konstruktor initialisiert wird - entweder statisch machen und über Klassennamen darauf verweisen 'CreateDevice.simulator' ODER entferne das' static' Schlüsselwort. (Das hat aber mit der Frage, Singleton zu sein, eigentlich nichts zu tun) – Hulk
Sie haben recht. Dies ist ein problematischer Code, der geändert werden muss. –