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

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 21-07-2008, 19:26   #1 (permalink)
Developer
 
Benutzerbild von malthoff
 
Registriert seit: Sep 2001
Ort: Stuttgart
Beiträge: 519
Question Eigene Datenstruktur oder XML wrappen

Hallo.
Ich bin gerade dabei eine Datenstruktur aufzubauen, die den Inhalt einer
Referenzen Seite wiederspiegelt. Also es gibt Obergruppen und in den
Gruppen nach Themen sortierte Medien, die angezeigt werden sollen.

Ich frage mich gerade, was geschickter ist - aus den in XML vorliegenden
Daten in Flash eine Datenstruktur erstellen, ala
PHP-Code:
private var _type:String;
private var 
_url:String;
private var 
_description:String
... und die Daten aus den XML Knoten zu ziehen oder einfach die
XML Knoten in den Objekten zu speichern und diese mit E4X anzufragen.

E4X hat soviele Sortierfunktionen, die ich mir ja sonst noch selber
schreiben müsste, wie: "Gib mir alle Medien mit dem Typ MP3".

Überseh ich da gerade einen entscheidenden Punkt? Ich würde also
in den Gettern der Objekte das XML File konsultieren und erst dann die
Daten daraus ziehen.

Wie seht/macht Ihr das?

Gruß,
dr.ache
malthoff ist offline   Mit Zitat antworten
Alt 21-07-2008, 19:37   #2 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Bremen
Beiträge: 13.379
Je nachdem, was du machen willst. Ich persönlich denke nicht, dass E4X Ausdrücke in einer Applikation oder in Komponenten die Wiederverwendbarkeit erhöhen. Aber wenn es nur um die eine Applikation geht, ist es wohl egal. Ich tendiere aber generell zu einer Hierarchie von Objekten.
Omega Psi ist offline   Mit Zitat antworten
Alt 21-07-2008, 19:45   #3 (permalink)
Banned
 
Registriert seit: May 2008
Beiträge: 512
möchtest du ein cms entwerfen und die configuration der darstellung und Inhalte über xml files verwirklichen?

mfg
cc
ccode ist offline   Mit Zitat antworten
Alt 21-07-2008, 19:54   #4 (permalink)
Developer
 
Benutzerbild von malthoff
 
Registriert seit: Sep 2001
Ort: Stuttgart
Beiträge: 519
Geht nur um die eine Anwendung und ich habe ja eine Hierarchie von
Objekten. Ich habe Cases, die wiederum aus Medien bestehen. Und beide
dieser, in einer Hierarchie angeordneten Objekte, speichern ihren XML Nodes
und vielleicht noch weitere Sachen wie eine ID.

Wenn ich jetzt auf die Inhalte zugreifen will mach ich immer sowas:
PHP-Code:
public function get description() {
return 
this.xml.@description

Ich frage mich gerade, was es mir bringt, für die Werte im XML Knoten
eigene Felder anzulegen. Wenn sich innerhalb der XML Struktur was
ändert, zum Beispiel das ein Attribut "Datum" hinzukommt, müsste ich
doch genauso in die Datenklassen zurück, nen Feld und seine getter und
setter hinzufügen. Da ist es doch einfacher, NUR den getter hinzuzufügen
und zu sagen
PHP-Code:
return this.xml.@datum 
Klar ist jetzt das System auf E4X ausgelegt... aber das bleibt es doch
auch, solange ich in AS3 entwickel.... was übersehe ich?

Was ist der Vorteil, alle Daten explizit aus dem XML File zu lesen und
die XML Struktur wegzuschmeissen?

Danke für die Antworten...
malthoff ist offline   Mit Zitat antworten
Alt 21-07-2008, 20:02   #5 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Bremen
Beiträge: 13.379
Wie gesagt, wenn es nur eine Mini-Anwendung ist, ist es fast egal. Typsicherheit ist aber nicht gegeben.
Omega Psi ist offline   Mit Zitat antworten
Alt 21-07-2008, 20:08   #6 (permalink)
Developer
 
Benutzerbild von malthoff
 
Registriert seit: Sep 2001
Ort: Stuttgart
Beiträge: 519
Wie meinste das?

Ich hab die Klasse "Case" und ich hab die Klasse "Media".
Objekte vom Typ "Media" werden in Objekten vom Typ "Case" gespeichert.

Damit Hierarchie und Typisierung.

Nur den Inhalt der beiden, halte ich als XML Node vor, nicht als eigene
String Felder.
malthoff ist offline   Mit Zitat antworten
Alt 21-07-2008, 20:09   #7 (permalink)
Banned
 
Registriert seit: May 2008
Beiträge: 512
der sinn deiner idee mit dem xml ist also das du nur das xml ändern und dann in der entsprechenden klasse getter und setter hinzufügen müsstest.

jetzt frage ich mich wozu du die xml datei überhaupt brauchst, du würdest sie brauchen wenn du das für einen kunden oder bekannten machst der die inhalte einfach anpassen möchte nur müsste jede änderung am system dann ja auch durch dich oder jemand anders der das as verändert durchgeführt werden.

also solange es keine änderungen am system gibt und jemand die inhalte wechseln können soll, macht das ganze sinn sonst sehe ich den sinn der externen xml datei nicht, ich sehe auch nicht warum du die daten nicht hardcodet im flash hinterlegen solltest wenn diese eh nicht dynamisch sind.

vielleicht habe ich aber auch nicht ganz den sinn deiner xml datei verstanden.

mfg
cc
ccode ist offline   Mit Zitat antworten
Alt 21-07-2008, 20:19   #8 (permalink)
Developer
 
Benutzerbild von malthoff
 
Registriert seit: Sep 2001
Ort: Stuttgart
Beiträge: 519
@ccode:
Sorry, hab ich nicht erwähnt - aber natürlich sollen die Daten extern
von jemand anderem geändert werden. Es geht wie gesagt um eine
Referenzen Seite, die ändern sich gewöhnlich.

Meine Frage zielt nur darauf ab, was das Problem sein könnte, die Daten
in den XML Nodes zu belassen und sie bei Abfrage herauszuholen.

Der Aufwand, für jeden Inhalt in den XML Knoten Datenfelder anzulegen,
erscheint mir gerade einfach zu groß und wenig nützlich.

Sieht das wer anders?
malthoff ist offline   Mit Zitat antworten
Alt 21-07-2008, 20:26   #9 (permalink)
°.oO°O.o°.oO.o°O
 
Benutzerbild von bamboocha
 
Registriert seit: Jun 2005
Ort: CH
Beiträge: 1.490
Sorry, wenn ich keine Antwort gebe, aber die Frage ist für mich sehr interessant, da ich in Kürze an ein ähnliches Problem stossen werde.
Ich werde extern geänderte/erstellte XML verwenden bzw. die Daten darin für die Darstellung verwenden.

Daher würde ich die Frage gerne auch um den zeitlichen/ressourcentechnischen Aspekt erweitern:

Gibt es einien zeitlich und/oder ressourcentechnisch merkbaren Unterschied eventuell abhängig von der Häufigkeit einer Abfrage?

(Sorry nochmal, wenn ich in den Thread "platze")
__________________
There is no way to happiness, happiness is the way! - Buddha
bamboocha ist offline   Mit Zitat antworten
Alt 21-07-2008, 20:45   #10 (permalink)
Banned
 
Registriert seit: May 2008
Beiträge: 512
ok anders ausgedrükt du möchtest praktich nur ein leeres objekt das einer id in deiner xml datei entspricht verwenden und die eigenschaften der objekte nicht erst aus der xml in das entsprechende objekt referenzieren. das kannst du natürlich so machen... nur musst du die getter und setter so oder so schreiben es ist eine zeile mehr die du im konstruktor einfügst

this.daten = xml.@daten;

diese zeile wird nur einmal benötigt und nmur einmal geparst... musst du oder der besucher öfters wechseln muss sie dank deiner konstruktion mehrfach geparst werden.

mfg
cc
ccode ist offline   Mit Zitat antworten
Alt 21-07-2008, 21:51   #11 (permalink)
Developer
 
Benutzerbild von malthoff
 
Registriert seit: Sep 2001
Ort: Stuttgart
Beiträge: 519
jo, das richtig. aber denke dann auch nicht so wichtig. da muss es schon
ne menge daten haben, bis das ins gewicht fällt. würd ich schätzen.
malthoff ist offline   Mit Zitat antworten
Alt 21-07-2008, 22:07   #12 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Bremen
Beiträge: 13.379
Flexibler ist es aber, die XML komplett aussen vor zu halten. So müsstest du nur einen neuen Parser schreiben, wenn sich die XML Struktur ändert. Vor allen Dingen, wenn es ums testen geht, bringt dieses Vorgehen einige Vorteile.
Omega Psi ist offline   Mit Zitat antworten
Alt 21-07-2008, 22:24   #13 (permalink)
Developer
 
Benutzerbild von malthoff
 
Registriert seit: Sep 2001
Ort: Stuttgart
Beiträge: 519
Ich hab es vorher (als ich noch Datenfelder für alles angelegt hatte,
was ich jetzt wieder entfernt habe) so gemacht, dass sich jedes
Objekt selber darum kümmert, wie es sich aus den XML Daten generiert.

Damit hab ich doch sichergestellt, dass wenn sich inhaltlich etwas an
dem Node "Case" verändert, ich auch nur in der Klasse zu ändern brauche.

Ist doch die bessere Variante als einen großen Parser im Model zu haben,
der alles generiert, oder? Oder zumindest gleichwertig.

Gruß,
dr.ache
malthoff ist offline   Mit Zitat antworten
Alt 21-07-2008, 22:41   #14 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Bremen
Beiträge: 13.379
Nee, ist es nicht. Weil du nur einmal das Domänenmodel aufbaust. Was funktioniert funktioniert. Da macht es mehr Sinn nur den Parser entsprechend zu implementieren/erweitern. Anders macht man das in der Regel nicht.
Omega Psi ist offline   Mit Zitat antworten
Alt 22-07-2008, 01:47   #15 (permalink)
Developer
 
Benutzerbild von malthoff
 
Registriert seit: Sep 2001
Ort: Stuttgart
Beiträge: 519
Magst Du das mal an einem Beispiel erläutern? Ich komm nicht ganz dahinter,
wo der Vorteil liegt. Ist es grundsätzlich schlecht, den Aufbau des Modells in
die Objekte, die aus den XML Daten erzeugt werden, zu verlagern? Man könnte
doch meinen, dass hat was von Logikkapselung oder? Ist doch gut zu
wissen: Wenn sich etwas im Aufbau oder Inhalt des CaseNodes ändert,
geh ich in die Klasse und ändere da meine Struktur.

Nicht? Und wenn nicht, warum nicht. In einem großen Parser am Anfang
würde ich auch nur den Teil der Schleife ändern, die durch die Nodes iteriert,
die sich ums Case Node kümmert.
malthoff 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 06:57 Uhr.

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


Copyright ©1999 – 2014 Marc Thiele