Singleton: Unterschied zwischen den Versionen
Aus Das Sopra Wiki
Justus (Diskussion | Beiträge) K tippfehler |
Justus (Diskussion | Beiträge) |
||
Zeile 22: | Zeile 22: | ||
Singleton [ | Singleton [ | ||
label = "{Singleton|+ | label = "{Singleton|+ Default : Singleton |- Singleton()\l}" | ||
[URL="Singleton"] | [URL="Singleton"] | ||
] | ] |
Version vom 15. Mai 2009, 21:07 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
<graphviz> 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 ö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 Singleton m_Default;
private Singleton()
{
}
public static Singleton
{
get
{
if(m_Default == null)
{
m_Default = new Singleton();
}
return m_Default;
}
}
}
Referenzen
- ↑ Wikipedia Artikel zu Singletons
- ↑ http://msdn.microsoft.com/en-us/library/aa730869%28VS.80%29.aspx MSDN-Artikel zu Konfigurationseinstellungen