[ascoders] Re: AS2 und die Detektive (war:Singletons & andere seltsame Erscheinungen)

  • From: Ralf Siegel <ralf@xxxxxxxxxxx>
  • To: ascoders@xxxxxxxxxxxxx
  • Date: Wed, 24 Sep 2003 21:23:42 +0200


Für mich ist nicht klar, was hier eine Klasse überhaupt für einen Vorteil
gegenüber einem einfachen Objekt hat. Ich sehe natürlich die Problematik,
das AS2 nur Klassenbasiert funktioniert, aber das ist wieder ein Grund mehr
AS2 als Rückschritt zu empfinden.

Eine Klasse ist einfach die Vorlage für das Objekt und erweiterbar. Wenn du heute nur eine Instanz brauchst, brauchst du morgen vielleicht doch noch eine zweite Instanz oder möchtest eine Klasse ableiten und hast vorgesorgt. Sicher geht's einfach mit einem Objekt und Methoden dranpappen, aber Klassen sind sauberer und leichter zu warten.


Es gibt ja dadurch auch 'Multiple Singletons'. Ein schönes Beispiel sind hierbei Netzwerk-Verbindungen und Browser-Fenster. Du hast also eine Klasse 'NetworkConnections' welche maximal 2x instanziert werden kann. Jedes von den hunderten Browserfenstern 'zieht' sich seine Verbindung, die Klasse 'NetworkConnections' übernimmt die Lastverteilung, d.h. 50 Fenster bekommen Verbindung 1 (die erste Instanz), die andern 50 bekommen Verbindung 2 (die zweite Instanz).

Und das Singleton als Software-Muster an sich ist wie mit allen Patterns vor allem auch ein Weg zu kommunizieren. Wenn jemand erzählt "Mach da 'n Singleton aus dem PathFinder", ist das kurz und präzise. Ansonsten müsste erst jemand erklären:

"Bei dem PathFinder darf es nur ein Instanz geben, sonst funktioniert der Zähler nicht und der Broadcaster wird tausend mal angemeldet und so und überhaupt. Mach also den Konstruktor 'privat' um eine direkte Instanzierung zu verbieten und definiere eine Methode, die eben diese eine Instanz zurückgibt ... "

Ein Objekt ist einfach, aber letzlich auch nur eine Instanz von Object, dem du Dinge aufpackst

Ich bin halt ein Fachidiot, was andere
Programmiersprachen angeht, aber ich hätte wirklich ein paar nette Ideen,
die das Leben wesentlich einfacher machen würden.

Bin für alles zu haben, was ab vom Weg liegt - wie wäre es mit einem Branch -> AS 1.5


*g*

Die ganze Variablendeklaration kann doch auch der Compiler machen. Ich sehe
da keinen Sinn drin. Und ohne verschachtelte Klassen muss ich immer Methoden
und Eigenschaften 'public' machen, die eigentlich für nur eine Klasse Sinn
machen.

Kannst du das an einem kleinen Beispiel AS1 vs. AS2 deutlich machen? Bin mir nicht sicher, was du meinst.


ralf ...





------------------------------------------------------
Archiv   : //www.freelists.org/archives/ascoders/
Optionen : //www.freelists.org/list/ascoders
------------------------------------------------------

Other related posts: