Singleton

Bitte aktiviere JavaScript!
Hallo zusammen,

ich habe eine Frage zum Thema Singleton.
Mir leuchtet nicht ganz ein, weshalb die Variable >> instance<< statisch sein soll.
Wo läge der Unterschied, wenn man das >>static<< entfernen würde.

vielen Dank für eure Antworten
Oli

public class Singleton {
private Singleton () {

}
private static final Singleton instance = new Singleton();


public static Singleton getInstance() {
return instance;
}
 
Wenn die Variable nicht static wäre, dann müsste die Methode getInstance() auch nicht-static sein und du bräuchtest eine Instanz von Singleton, um an die Singleton-Instanz zu kommen, weil die `instance` Variable ja dann eine Instanzvariable wäre ... würde also keinen Sinn machen.
 
Wenn die Variable nicht static wäre, dann müsste die Methode getInstance() auch nicht-static sein und du bräuchtest eine Instanz von Singleton, um an die Singleton-Instanz zu kommen, weil die `instance` Variable ja dann eine Instanzvariable wäre ... würde also keinen Sinn machen.
Vielen Dank. Mit ein wenig Nachdenken macht das Sinn.
Musste mir Deine Antwort allerdings mehrfach durchlesen bis es Klick gemacht hat.
 
Wäre die Instanz nicht static, was nebenbei sei angemerkt jedem Singleton pattern entspricht, wäre der Schutz vor Merhfachinstantiierung auf "Anwendungsebene" nicht mehr gegeben. Sprich... "jeder" kann/könnte beliebig oft Instanzen des vermeintlichen Singleton erstellen.
Setz Dich doch mal damit auseinander, was nicht statische Variablen sind. ;)
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben