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

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 05-05-2010, 23:17   #1 (permalink)
JoH
Neuer User
 
Registriert seit: Dec 2005
Beiträge: 99
AS3 Lecks

Wollte mal nachfragen wie ihr mit folgenden Problemen unter AS3 umgeht:

Ich habe Models die Daten in einer Collection verwalten.
Ich will typsichere Models.
Der einfachste Weg wäre eine typisierte Variante meiner Collection via
Templates C++ oder Generics Java.

In AS3 fallen mir auf Anhieb 2 workarounds ein.
1. Eine Collection für jeden Datentyp schreiben.
2. Die Collection kapseln und bei der Implementierung der Methoden auf den gewünschten Datentyp prüfen um bei Bedarf wild mit Exceptions um mich zu werfen.
Beides produziert fehleranfälligen, duplizierten code.
Bei der zweiten Variante kommt hinzu, dass der Zugriff vom Client eigentlich über try-catch erfolgen sollte was nicht (wie bei Java) erzwungen werden kann.

Ein anderes Problem habe ich mit der fehlenden Untersützung für das überladen von Methoden.
Es nervt beispielsweise unglaublich alle getter mit einem byXXX Suffix zu versehen.
getUser, getUserById, getUserByName, etc.

workaround:
Eine getUser Methode die eine unbestimmte Anzahl von Argumenten verwaltet und intern über Type-Casting versucht den Kontext zu erzeugen.

Auch die fehlende Untersützung für Enumerations sorgt für unnötigen overhead weil man einkommende Werte manuell gegen eine Menge von validen Werten prüfen muss.

Die Notwendigkeit solcher workarounds produziert doch mit Sicherheit unmengen an Kosten in der professionellen Softwareentwicklung unter AS3.

Wie geht ihr mit den oben genannten Problemen um?
JoH ist offline   Mit Zitat antworten
Alt 06-05-2010, 08:21   #2 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.146
Zitat:
Zitat von JoH Beitrag anzeigen
  1. Eine Collection für jeden Datentyp schreiben.
  2. Die Collection kapseln und bei der Implementierung der Methoden auf den gewünschten Datentyp prüfen um bei Bedarf wild mit Exceptions um mich zu werfen.
  3. Ein anderes Problem habe ich mit der fehlenden Untersützung für das überladen von Methoden. Es nervt beispielsweise unglaublich alle getter mit einem byXXX Suffix zu versehen. getUser, getUserById, getUserByName, etc.
  1. Für so was hab ich mir mal selbst einen Generator gebaut. Meine präferierte Methode so zu sagen.
  2. Schlecht. Teuer und unnötig, siehe 1.
  3. Aber genau darum geht es ja. du möchtest sprechende Methodennamen um zu verstehen, was die Methoden machen.
Omega Psi ist offline   Mit Zitat antworten
Alt 06-05-2010, 11:27   #3 (permalink)
thinkin aBout tha lib.
 
Benutzerbild von kaneda
 
Registriert seit: Nov 2001
Ort: Kölle
Beiträge: 1.379
Ohh - der Arme Joh

Sorry, ich schmunzel mir einen: Also - du wünscht dir Overloading und Generics .... ala Java.

Ich geh damit so um: Adobe nerven bis sie endlich Lust dazu haben

[#ASL-2] Generic types - Adobe Bug System
[#ASL-23] Shared-memory multithreading - Adobe Bug System
[#ASL-9] Method Overloading - Adobe Bug System

Einfach auch alle zum voten überreden

Ich hab schon mal selber zu as2 Zeiten probiert so Sprachfeatures nachzuimplementieren. Leider werden alle pseudotricks unbrauchbar was die Geschwindigkeit betrifft und so richtigen IDE support wirds halt auch nie geben. Deswegen sollte man sowas wie das hier

Ultimate AS3 Fake Enums at New Fun Blog – Scott Bilas

eigentlich eher sein lassen.

Bis dahin muss man sich eben der Sprache hingeben. Wenn man die untypisierten Zugriffe gering hält dann ist das eh halbwegs überschaubar.

Die untypisierten Zugriffe werden von mir alle Sofort beim herausnehmen typisiert (casten).

Edit: Es gibt Jungs und Mädels die aus genau diesem Frust haXe verwenden: http://haxe.org/ (compiliert auch nach SWF)
__________________
Back to community with http://leichtgewicht.at

Geändert von kaneda (06-05-2010 um 11:28 Uhr)
kaneda 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 12:53 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele