<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de-x-formal">
	<id>https://glossar.hs-augsburg.de/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Killua-x</id>
	<title>GlossarWiki - Benutzerbeiträge [de-formal]</title>
	<link rel="self" type="application/atom+xml" href="https://glossar.hs-augsburg.de/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Killua-x"/>
	<link rel="alternate" type="text/html" href="https://glossar.hs-augsburg.de/Spezial:Beitr%C3%A4ge/Killua-x"/>
	<updated>2026-07-17T00:02:23Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.43.3</generator>
	<entry>
		<id>https://glossar.hs-augsburg.de/w/index.php?title=Singleton_(ActionScript3)&amp;diff=13357</id>
		<title>Singleton (ActionScript3)</title>
		<link rel="alternate" type="text/html" href="https://glossar.hs-augsburg.de/w/index.php?title=Singleton_(ActionScript3)&amp;diff=13357"/>
		<updated>2010-01-31T18:52:39Z</updated>

		<summary type="html">&lt;p&gt;Killua-x: Die Seite wurde neu angelegt: == Verwendung von Singleton == Das Singleton ist eines der gängigeren Design Pattern.&amp;lt;br&amp;gt; Ein Singleton wird am besten bei Klassen verwendet, wo es man nur eine Instan...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Verwendung von Singleton ==&lt;br /&gt;
Das Singleton ist eines der gängigeren Design Pattern.&amp;lt;br&amp;gt;&lt;br /&gt;
Ein Singleton wird am besten bei Klassen verwendet, wo es man nur eine Instanz dieser Klasse benötigt. &amp;lt;br&amp;gt;&lt;br /&gt;
So könnte man bei Gruppenarbeiten damit verhindern, dass Kollegen eine Instanz einer Klasse erstellen, &amp;lt;br&amp;gt;wenn man das schon selbst getan hat.&lt;br /&gt;
In der Regel hat man auch global zugriff auf den Singleton. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vorteile von Singleton ==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; es wird verhindert dass über den new Operator neue Objekte erzeugt werden&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; ein gesteuerter Zugriff ist möglich, der immer die selben Ergebnisse zurückliefert&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; man kann Singletons ableiten und notfalls gewisse methoden überschreiben (Vererbung)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; gute Alternative zu globale Variablen&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
== Nachteile von Singleton ==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; man kann es meist auch anders lösen&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Singleton können sehr unflexibel sein&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; durch Singleton kann man leicht verleitet werden, eher prozedual anstatt objektorientiert zu programmieren&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Singletons lassen sich schlecht testen&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Probleme in Flash und ein Lösungsweg ==&lt;br /&gt;
&lt;br /&gt;
In Actionscript ist es leider nicht möglich Konstruktoren auf private zu setzen.&amp;lt;br&amp;gt; &lt;br /&gt;
Aber würde man den Konstruktor einfach public stehen lassen, so drohe eine mögliche Manipulation von Außen.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit einem Trick kann man eine gewisse Privatisierung des Konstruktors.&amp;lt;br&amp;gt; &lt;br /&gt;
In diesem Fall passiert das über die interne Klasse SteuerungPrivat, welche nur von Steuerung aus erreichbar ist.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Beispiel der Implementierung in Flash3==&lt;br /&gt;
Für das klassische Singleton wird eine statische Methode implementiert, welche das Objekt erzeugt und zurückgibt. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;actionscript3&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public class Steuerung{&lt;br /&gt;
		&lt;br /&gt;
      private static var instance:Steuerung;&lt;br /&gt;
      private static var allowInstantiation:Boolean;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	public static function getInstance():Steuerung {&lt;br /&gt;
         if (instance == null) {&lt;br /&gt;
            allowInstantiation = true;&lt;br /&gt;
            instance = new Steuerung(new SteuerungPrivat());&lt;br /&gt;
            allowInstantiation = false;&lt;br /&gt;
          }&lt;br /&gt;
         return instance;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
	public static function killInstance():Steuerung {&lt;br /&gt;
	  if (instance != null) {&lt;br /&gt;
            instance = null;&lt;br /&gt;
            allowInstantiation = true;&lt;br /&gt;
          }&lt;br /&gt;
         return instance;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
		public function Steuerung(se:SteuerungPrivat){&lt;br /&gt;
		}&lt;br /&gt;
}}&lt;br /&gt;
internal class SteuerungPrivat {}&lt;br /&gt;
&amp;lt;/source&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Der Zugriff auf den Singleton ist nur über die Methode getInstance() möglich. Intern kann der Singleton auch andere Methoden haben auf die man via getInstance() auch selbst Zugriff hat.  &amp;lt;br&amp;gt;Beim Löschen des Singletons muss man auch schauen, dass auch die interne statische Instanz überschrieben wird. Andernfalls würde der Singleton beim nächsten Aufruf die alten Werte aus der Instanz bekommen.&lt;/div&gt;</summary>
		<author><name>Killua-x</name></author>
	</entry>
	<entry>
		<id>https://glossar.hs-augsburg.de/w/index.php?title=Benutzer:Killua-x&amp;diff=13356</id>
		<title>Benutzer:Killua-x</title>
		<link rel="alternate" type="text/html" href="https://glossar.hs-augsburg.de/w/index.php?title=Benutzer:Killua-x&amp;diff=13356"/>
		<updated>2010-01-31T18:36:14Z</updated>

		<summary type="html">&lt;p&gt;Killua-x: Die Seite wurde neu angelegt: == Verwendung von Singleton == Das Singleton ist eines der gängigeren Design Pattern.&amp;lt;br&amp;gt; Ein Singleton wird am besten bei Klassen verwendet, wo es man nur eine Instan...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Verwendung von Singleton ==&lt;br /&gt;
Das Singleton ist eines der gängigeren Design Pattern.&amp;lt;br&amp;gt;&lt;br /&gt;
Ein Singleton wird am besten bei Klassen verwendet, wo es man nur eine Instanz dieser Klasse benötigt. &amp;lt;br&amp;gt;&lt;br /&gt;
So könnte man bei Gruppenarbeiten damit verhindern, dass Kollegen eine Instanz einer Klasse erstellen, &amp;lt;br&amp;gt;wenn man das schon selbst getan hat.&lt;br /&gt;
In der Regel hat man auch global zugriff auf den Singleton. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vorteile von Singleton ==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; es wird verhindert dass über den new Operator neue Objekte erzeugt werden&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; ein gesteuerter Zugriff ist möglich, der immer die selben Ergebnisse zurückliefert&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; man kann Singletons ableiten und notfalls gewisse methoden überschreiben (Vererbung)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; gute Alternative zu globale Variablen&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
== Nachteile von Singleton ==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; man kann es meist auch anders lösen&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Singleton können sehr unflexibel sein&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; durch Singleton kann man leicht verleitet werden, eher prozedual anstatt objektorientiert zu programmieren&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Singletons lassen sich schlecht testen&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Probleme in Flash und ein Lösungsweg ==&lt;br /&gt;
&lt;br /&gt;
In Actionscript ist es leider nicht möglich Konstruktoren auf private zu setzen.&amp;lt;br&amp;gt; &lt;br /&gt;
Aber würde man den Konstruktor einfach public stehen lassen, so drohe eine mögliche Manipulation von Außen.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit einem Trick kann man eine gewisse Privatisierung des Konstruktors.&amp;lt;br&amp;gt; &lt;br /&gt;
In diesem Fall passiert das über die interne Klasse SteuerungPrivat, welche nur von Steuerung aus erreichbar ist.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Beispiel der Implementierung in Flash3==&lt;br /&gt;
Für das klassische Singleton wird eine statische Methode implementiert, welche das Objekt erzeugt und zurückgibt. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;actionscript3&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public class Steuerung{&lt;br /&gt;
		&lt;br /&gt;
      private static var instance:Steuerung;&lt;br /&gt;
      private static var allowInstantiation:Boolean;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	public static function getInstance():Steuerung {&lt;br /&gt;
         if (instance == null) {&lt;br /&gt;
            allowInstantiation = true;&lt;br /&gt;
            instance = new Steuerung(new SteuerungPrivat());&lt;br /&gt;
            allowInstantiation = false;&lt;br /&gt;
          }&lt;br /&gt;
         return instance;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
	public static function killInstance():Steuerung {&lt;br /&gt;
	  if (instance != null) {&lt;br /&gt;
            instance = null;&lt;br /&gt;
            allowInstantiation = true;&lt;br /&gt;
          }&lt;br /&gt;
         return instance;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
		public function Steuerung(se:SteuerungPrivat){&lt;br /&gt;
		}&lt;br /&gt;
}}&lt;br /&gt;
internal class SteuerungPrivat {}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Der Zugriff auf den Singleton ist nur über die Methode getInstance() möglich. Intern kann der Singleton auch andere Methoden haben auf die man via getInstance() auch selbst Zugriff hat.  &amp;lt;br&amp;gt;Beim Löschen des Singletons muss man auch schauen, dass auch die interne statische Instanz überschrieben wird. Andernfalls würde der Singleton beim nächsten Aufruf die alten Werte aus der Instanz bekommen.&lt;/div&gt;</summary>
		<author><name>Killua-x</name></author>
	</entry>
</feed>