Singleton: Unterschied zwischen den Versionen

Aus Das Sopra Wiki
LeonH (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
Dietsch (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
Zeile 7: Zeile 7:


== Pattern ==
== Pattern ==
<graphviz>
[[Datei:Singleton.svg|rahmenlos|200x200px]]
digraph G {
        fontname = "Bitstream Vera Sans"
        fontsize = 8
 
        node [
                fontname = "Bitstream Vera Sans"
                fontsize = 8
                shape = "record"
        ]
 
        edge [
                fontname = "Bitstream Vera Sans"
                fontsize = 8
        ]
 
                Singleton [
                        label = "{Singleton|+ Default : Singleton |- Singleton()\l}"
                        [URL="Singleton"]
                ]
 
}
</graphviz>
 
Durch den privaten [[Konstruktor]] wird kein [[Sichtbarkeit|öffentlicher]] Defaultkonstruktur generiert. Dadurch kann keine Instanz der [[Klasse]] von außen erzeigt werden.
Durch den privaten [[Konstruktor]] wird kein [[Sichtbarkeit|öffentlicher]] Defaultkonstruktur generiert. Dadurch kann keine Instanz der [[Klasse]] von außen erzeigt werden.


Zeile 57: Zeile 34:
}
}
}
}
</source><noinclude> [[Kategorie:Code-Beispiele]]
</source><noinclude>  
[[Kategorie:Code-Beispiele]]


== Referenzen ==
== Referenzen ==

Version vom 23. Oktober 2020, 12:14 Uhr


Ein Singleton[1] ist eine Klasse, die nur einmal instanziiert werden kann. Dies wir dadurch erreicht, daß der Konstruktor als privat markiert wird.

Hintergrund

Singletons werden bentzt, um globale Variablen in einer objektorienterten Weise darzustellen. Ein Beispiel dafür ist die Konfigurationsdatei[2] in Visual Studio. Diese hat eine Property Default mit der man sich eine Referenz holen kann. Auf dieser wird dann gearbeitet.

Pattern

Durch den privaten Konstruktor wird kein öffentlicher Defaultkonstruktur generiert. Dadurch kann keine Instanz der Klasse von außen erzeigt werden.

Beispiel

Ein typisches Singleton sieht etwa so aus

public class Singleton
{
	public int EineVariable { get; set; }
	private static Singleton m_Default;
	
	private Singleton()
	{
	}
	
	public static Singleton Default
	{
		get
		{
			if(m_Default == null)
			{
				m_Default = new Singleton();
			}
			return m_Default;
		}
	}
}

Referenzen

  1. Wikipedia Artikel zu Singletons
  2. http://msdn.microsoft.com/en-us/library/aa730869%28VS.80%29.aspx MSDN-Artikel zu Konfigurationseinstellungen