Singleton: Unterschied zwischen den Versionen
Aus Das Sopra Wiki
Justus (Diskussion | Beiträge) Die Seite wurde neu angelegt: Ein Singleton<ref name=wikiSongleton">Wikiepdia Artikel zu Singletons</ref> ist eine Klasse, die nur einmal instanziiert wer... |
Keine Bearbeitungszusammenfassung |
||
(9 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
Ein Singleton<ref name=wikiSongleton">[[wikipedia:de:Singleton_(Entwurfsmuster)| | {{löschen}} | ||
Ein Singleton<ref name=wikiSongleton">[[wikipedia:de:Singleton_(Entwurfsmuster)|Wikipedia Artikel]] zu Singletons</ref> ist eine Klasse, die nur einmal instanziiert werden kann. Dies wir dadurch erreicht, daß der [[Konstruktor]] als [[Sichtbarkeit|privat]] markiert wird. | |||
== Hintergrund == | == Hintergrund == | ||
Singletons werden bentzt, um globale Variablen in einer objektorienterten Weise darzustellen. Ein Beispiel dafür ist die Konfigurationsdatei<ref name="msdnSetting">http://msdn.microsoft.com/en-us/library/aa730869%28VS.80%29.aspx MSDN-Artikel zu Konfigurationseinstellungen</ref> in Visual Studio. Diese hat eine [[Property]] <tt>Default</tt> mit der man sich eine [[Referenz]] holen kann. Auf dieser wird dann gearbeitet. | Singletons werden bentzt, um globale Variablen in einer objektorienterten Weise darzustellen. Ein Beispiel dafür ist die [[Anwendungseinstellungen|Konfigurationsdatei]]<ref name="msdnSetting">http://msdn.microsoft.com/en-us/library/aa730869%28VS.80%29.aspx MSDN-Artikel zu Konfigurationseinstellungen</ref> in Visual Studio. Diese hat eine [[Property]] <tt>Default</tt> mit der man sich eine [[Referenz]] holen kann. Auf dieser wird dann gearbeitet. | ||
== Pattern == | == Pattern == | ||
[[Datei:Singleton.svg|rahmenlos|200x200px]] | |||
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 36: | Zeile 17: | ||
{ | { | ||
public int EineVariable { get; set; } | public int EineVariable { get; set; } | ||
private Singleton m_Default; | private static Singleton m_Default; | ||
private Singleton() | private Singleton() | ||
Zeile 42: | Zeile 23: | ||
} | } | ||
public static Singleton | public static Singleton Default | ||
{ | { | ||
get | get | ||
Zeile 54: | Zeile 35: | ||
} | } | ||
} | } | ||
</source><noinclude> | </source><noinclude> | ||
[[Kategorie:Code-Beispiele]] | |||
== Referenzen == | == Referenzen == | ||
<references /> | <references /> | ||
[[Kategorie:Code-Beispiele]][[Kategorie:Begriffe]] | [[Kategorie:Code-Beispiele]][[Kategorie:Begriffe]][[Kategorie:CSharp]] | ||
</noinclude> | </noinclude> |
Aktuelle 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
- ↑ Wikipedia Artikel zu Singletons
- ↑ http://msdn.microsoft.com/en-us/library/aa730869%28VS.80%29.aspx MSDN-Artikel zu Konfigurationseinstellungen