Zurück   Flashforum > Flash > ActionScript > Softwarearchitektur und Entwurfsmuster

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 02-01-2007, 20:25   #1 (permalink)
Affine Abbildung
 
Benutzerbild von Samuel
 
Registriert seit: Feb 2002
Ort: Bremen
Beiträge: 15.124
Abstrakte Klasse in AS 2?

Ich sehe wohl richtig, dass es keine abstrakten Klassen in As 2 gibt.
Was ist also zutun? Hab gerade kein Flash, kann ich variablen vom Typ eines Interface haben, nein oder?
Benutzt ihr also richtige Klassen die ihr überschreibt? Wie kommt man sonst auf den Datentypen bezüglich Polymorphie?

Was sind gängige Workarounds für abstrakte Klassen?
Man definiert die klasse als class AbstractFahrzeug usw und einigt sich darauf, dass jede Methode der abstrakten Klasse ne Exception wirft, wenn man doch so kluk war, die zu instanzieren?
__________________
Solange sich auch nur einer an ihn erinnert, solange auch nur ein Herz mit Leidenschaft schlägt - wie kann ein Traum da sterben?

If you use the wrong line ending characters when writing your files, you might find that other applications that open those files will "look funny". - PHP.net

Hier ruhn meine Gebeine - ich wollt, es wären Deine.

Try to look unimportant, they may be low on ammo!

Was ist euer Lieblings-Datentyp? Schreibt mir!
Samuel ist offline   Mit Zitat antworten
Alt 02-01-2007, 20:44   #2 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.935
Wo ist das Problem? Gibt wirklich keine abstrakten Klassen in AS2, aber hau
halt ein Kommentar rein, dass die Klasse abstrakt ist und gut ist.
sebastian ist offline   Mit Zitat antworten
Alt 02-01-2007, 20:56   #3 (permalink)
Neuer User
 
Registriert seit: Oct 2006
Beiträge: 162
Zitat:
Zitat von Samuel Beitrag anzeigen
Was sind gängige Workarounds für abstrakte Klassen?
Man definiert die klasse als class AbstractFahrzeug usw und einigt sich darauf, dass jede Methode der abstrakten Klasse ne Exception wirft, wenn man doch so kluk war, die zu instanzieren?
Soweit zu gehen und eine Exception zu werfen braucht man ja wohl erst, wenn
man nun wirklich in einem groß verteiltem Programmierteam arbeitet oder eine Schnittstelle anbietet, die dann fremde Leute für ihre Programme verwenden.

Aber sonst reicht es doch auch aus, einfach sich auf einen Namenskonvention zu einigen, so dass sofort klar ist, was als abstrakte Klasse gesehen werden soll. Also z.b. wie man Interfaces mit IBla benennt dann eben ABla. Und dann sollte auch jeder im Team sich daran halten und so schlau sein die Klasse so zu verwenden, wie es gedacht ist. Bisher hatte ich noch nie ein echtes Problem damit um nach einen "Workaround" zu fragen
MaticPel ist offline   Mit Zitat antworten
Alt 02-01-2007, 21:32   #4 (permalink)
DeRailed
 
Benutzerbild von klickverbot
 
Registriert seit: Sep 2006
Beiträge: 321
Zitat:
Was ist also zutun? Hab gerade kein Flash, kann ich variablen vom Typ eines Interface haben, nein oder?
Klar kannst du das, aber was bringt es dir in diesem spezifischen Fall?

Eine "einfache" und wirksame Lösung ist, den Konstruktor als private zu deklarieren. Allerdings ist dies in AS3 nicht mehr möglich.

Eine "ausgebaute" Variante findest du hier:
http://www.actionscript.org/resource...S20/Page1.html

Aber es stimmt, eigentlich sollte eine Namenskonvention ausreichen...
klickverbot ist offline   Mit Zitat antworten
Alt 09-01-2007, 23:08   #5 (permalink)
Nagelneuer User
 
Benutzerbild von hazy fantazy
 
Registriert seit: Dec 2005
Beiträge: 923
Eine andere Möglichkeit ist es, ein Interface und eine Basisklasse zu benutzen, die das Interface nicht implementiert. Dann hast du den Vorteil, dass dir der Compiler hilft.
Zum Beispiel, anstatt einer abstrakten Klasse mit einer implementierten Methode a und einer abstrakten Methode b nimmst du eine Basisklasse mit der Methode a und ein Interface mit der Methode b und schreibst dann class X extends Basisklasse implements Interface. Wenn du jetzt die Methode b in X nicht implementierst, meckert der Compiler.
__________________
The fact that you've got "Replica" written on the side of your gun and the fact that I've got "Desert Eagle written on the side of mine ... :D

Geändert von hazy fantazy (09-01-2007 um 23:28 Uhr)
hazy fantazy ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 20:48 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2014 Marc Thiele