[ascoders] Singletons & andere seltsame Erscheinungen (war: Static Classes an ASBroadcaster initialisieren)
- From: Ralf Siegel <ralf@xxxxxxxxxxx>
- To: ascoders@xxxxxxxxxxxxx
- Date: Wed, 24 Sep 2003 20:14:29 +0200
Ich finde, Singleton Klassen sind unsauber.
Irgentwie sieht das Ganze aus wie ein Workaround, um OOP Unzulänglichkeiten
wieder gerade zu biegen.
Hehe, schön dass du das erwähnst - es gibt hier seit Monaten Grabenkämpfe
um's Singleton. Die einen behaupten, Singletons versauen die
Klassen-Hierarchie, die anderen - nunja, das Gegenteil.
Ich wollte nochmal mit den Leuten diskutieren, aber ein Streitpunkt ist
wohl, dass abgeleitete Klassen - so diese auch Singleton spielen wollen -
die Creator-Methode stillschweigend ohne Zwang überschreiben müssen, sonst
wird der falsche Typ (eben eine Instanz der Unterklasse) zurückgeliefert.
Möchtest du hingegen eine Klasse von einem Singleton ableiten, die kein
Singleton mehr sein will, schleppst du die Creator-Methode immer durch die
Hierarchie.
In dem Zusammenhang bin ich aber eben auf seltsame Dinge in ActionScript
2.0 gestoßen, wo man Vererbung von statischen Eigenschaften und Methoden im
allgemeinen und für Singletons im speziellen sowieso vergessen kann ...
______________________________________________________________
[Bottom.as]
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
class Bottom
{
public static var up:String = "ups";
private function Bottom() {
}
public static function saySomething():Void {
trace("I feel down");
}
}
______________________________________________________________
[Top.as]
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
class Top extends Bottom
{
private function Top()
{
}
}
______________________________________________________________
[ main.fla ]
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
trace(Top.up);
Top.saySomething();
trace("-----------------------");
trace(Bottom.up);
Bottom.saySomething();
trace("-----------------------");
trace(Top.up);
Top.saySomething();
_______________________________________________________________
[ Ausgabe ]
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
undefined
-----------------------
ups
I feel down
-----------------------
ups
I feel down
_______________________________________________________________
Die statische Eigenschaft 'up' ist praktisch erst für die Klasse 'Top'
verfügbar, wenn sie vorher über die Klasse 'Bottom' "angesprochen" wurde.
Dasselbe gilt für die Methode 'saySomething'.
Kneift mich bitte jemand ;o(
ralf ....
------------------------------------------------------
Archiv : http://www.freelists.org/archives/ascoders/
Optionen : http://www.freelists.org/list/ascoders
------------------------------------------------------
- Follow-Ups:
- [ascoders] Re: AS2 und die Detektive (war:Singletons & andere seltsame Erscheinungen)
- From: André Michelle
- [ascoders] Re: Singletons & andere seltsame Erscheinungen (war: Static Classes an ASBroadcaster initialisieren)
- From: Florian Krüsch
- [ascoders] Re: Singletons & andere seltsame Erscheinungen (war: Static Classes an ASBroadcaster initialisieren)
- From: bokel
- [ascoders] static Vererbung (bug?)
- From: Florian Krüsch
Other related posts:
- » [ascoders] Singletons & andere seltsame Erscheinungen (war: Static Classes an ASBroadcaster initialisieren)
- » [ascoders] Re: Singletons & andere seltsame Erscheinungen (war: Static Classes an ASBroadcaster initialisieren)
- » [ascoders] Re: Singletons & andere seltsame Erscheinungen (war: Static Classes an ASBroadcaster initialisieren)
- » [ascoders] Re: Singletons & andere seltsame Erscheinungen (war: Static Classes an ASBroadcaster initialisieren)
Ich finde, Singleton Klassen sind unsauber. Irgentwie sieht das Ganze aus wie ein Workaround, um OOP Unzulänglichkeiten wieder gerade zu biegen.
------------------------------------------------------ Archiv : http://www.freelists.org/archives/ascoders/ Optionen : http://www.freelists.org/list/ascoders ------------------------------------------------------
- [ascoders] Re: AS2 und die Detektive (war:Singletons & andere seltsame Erscheinungen)
- From: André Michelle
- [ascoders] Re: Singletons & andere seltsame Erscheinungen (war: Static Classes an ASBroadcaster initialisieren)
- From: Florian Krüsch
- [ascoders] Re: Singletons & andere seltsame Erscheinungen (war: Static Classes an ASBroadcaster initialisieren)
- From: bokel
- [ascoders] static Vererbung (bug?)
- From: Florian Krüsch