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

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 01-07-2010, 11:19   #1 (permalink)
Don't panic
 
Benutzerbild von charly23121977
 
Registriert seit: Jul 2010
Beiträge: 13
pureMVC Verzeichnis-/package-Struktur bei mehreren MVCs

Wie sieht eine vernünftige Package-/Verzeichnisstruktur unter Verwendung von pureMVC aus, wenn ich für meine Anwendung (Flash/AS3) mehrere MVCs brauche.
Beispiel: Ich habe einen Preloader in meiner Anwendung der mehrere Dateien laden soll. Dieser soll mit pureMVC realisiert werden. Also lege ich nun ein Package wie folgt an: de.charly.myproject.loader. In diesem Package liegen weitere Packages für model, view und controller. Nun brauche ich noch parallel dazu ein weiteres MVC, dass mit dem ersten kommuniziert, und sich um den Hauptbereich der Anwendung kümmert. Das Package lautet z.B. de.charly.myproject.main. Ist es nun vernünftig, auch in diesem Package wieder jeweils ein Package für model, view und controller anzulegen? Oder leg ich diese Packages model, view & controller im de.charly.myproject-Package direct ab und lasse die Packages de.charly.myproject.loader und de.charly.myproject.main einfach weg? Gibt diesbezüglich vielleicht noch andere Ansätze?

Geändert von charly23121977 (01-07-2010 um 13:45 Uhr)
charly23121977 ist offline   Mit Zitat antworten
Alt 01-07-2010, 12:50   #2 (permalink)
as3 addict
 
Benutzerbild von Marcy_LH
 
Registriert seit: Jun 2002
Ort: Leipzig
Beiträge: 351
Warum sollte man das für ein und das selbe Projekt trennen?

Muss nicht der Weisheit letzter Schluss sein, aber
meine PureMVC-Projekte lege ich wie folgt an:

tld.kundendomain.projektname.assets //enhält meine Viewklassen
tld.kundendomain.projektname.core //enhält Preloader, Mainklasse
tld.kundendomain.projektname.patterns.controller //enhält commands in verschiedenen subpackages
tld.kundendomain.projektname.patterns.facade //enhält nur die facade
tld.kundendomain.projektname.patterns.model //enthält alle proxies und VOs im package vo
tld.kundendomain.projektname.patterns.view // enthält alle Mediatoren

das ist nur ein grober Überblick.

Geändert von Marcy_LH (01-07-2010 um 12:55 Uhr)
Marcy_LH ist offline   Mit Zitat antworten
Alt 01-07-2010, 13:53   #3 (permalink)
Don't panic
 
Benutzerbild von charly23121977
 
Registriert seit: Jul 2010
Beiträge: 13
Danke, guter Ansatz

Zitat:
Warum sollte man das für ein und das selbe Projekt trennen?
Das war nur ein Überlegungsansatz von mir. Habe mich erst vor kurzem mit pureMVC bekannt gemacht und wollte einfach nur mal in Erfahrung bringen wie das andere so angehen.

Deine Package-Struktur finde ich einen guten Ansatz. Hat mir erstmal sehr geholfen.

Danke schön!!!
charly23121977 ist offline   Mit Zitat antworten
Alt 01-07-2010, 13:58   #4 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.147
Wobei ich nach fachlichen Aspekten strukturieren würde, nicht nach Pattern...
Omega Psi ist offline   Mit Zitat antworten
Alt 01-07-2010, 15:39   #5 (permalink)
as3 addict
 
Benutzerbild von Marcy_LH
 
Registriert seit: Jun 2002
Ort: Leipzig
Beiträge: 351
das heißt genau? (mit Bitte um ein Beispiel)
Marcy_LH ist offline   Mit Zitat antworten
Alt 01-07-2010, 17:26   #6 (permalink)
Crème brûlée
 
Registriert seit: Jan 2006
Ort: Düsseldorf
Beiträge: 719
Nach Patterns finde ich auch nicht sinnvoll.

Wir haben es beim aktuellen Projekt so gelöst:

de.firmenname.projektname.core.controller.commands
de.firmenname.projektname.core.controller.interfac es
de.firmenname.projektname.core.controller.model.no tifications
de.firmenname.projektname.core.controller.model.pr oxies
de.firmenname.projektname.core.controller.model.vo s
de.firmenname.projektname.core.controller.model.vi ew.components
de.firmenname.projektname.core.controller.model.vi ew.events
de.firmenname.projektname.core.controller.model.vi ew.mediators
de.firmenname.projektname.core.controller.model.vi ew.ui

Darunter liegen natürlich wieder Packages mit den konkreten Klassen

In de.firmenname.projektname.core liegt unsere AppFacade

Und dann gibts diese Grundstruktur inklusive diverser Zusatzpackages nochmal in de.firmenname.shared -> das ist unser Grundframework
de.firmenname

Insgesamt haben wir so bei unseren ca. 350 Klassen eine gute Struktur.
laxersaz ist offline   Mit Zitat antworten
Alt 01-07-2010, 17:46   #7 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.147
Die Verzeichnisstruktur ist doch nach Patterns aufgebaut.
Omega Psi ist offline   Mit Zitat antworten
Alt 01-07-2010, 17:52   #8 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Ich persönlich würde für jedes MVC-Projekt eine Struktur aufsetzen. So ist alles etwas übersichtlicher und man wird nicht von Klassen erschlagen die zu anderen Projekten gehören.
Vorteil daran ist auch das so der Code leichter woanders verlinkt werden kann und nicht erst alle Klassen die zu einem Projekt gehören extrahiert werden müßen.
__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Alt 01-07-2010, 19:06   #9 (permalink)
Don't panic
 
Benutzerbild von charly23121977
 
Registriert seit: Jul 2010
Beiträge: 13
Also die Lösungen von laxersaz und Marcy_LH sind ja doch recht ähnlich und im Ansatz auch ganz gut. Mich würde nun aber interessieren was Omega Psi genau damit meint, das ganze nicht nach Pattern sondern nach fachlichen Aspekten zu strukturieren. Ebenso bin ich ganz neugierig, wie die Lösung von redner[i] konkret aussehen würde.

Wurde eigentlich für diese hier diskurtierte Problematik nicht schon irgendwo irgendwelche Standarts bzw. Richtlinien festgelegt, also so ähnlich wie bei der Ordner-Struktur eines Software-Projekts, das unterteilt wird in Ordner wie bin, lib, src etc.
charly23121977 ist offline   Mit Zitat antworten
Alt 02-07-2010, 05:38   #10 (permalink)
Developer
 
Benutzerbild von malthoff
 
Registriert seit: Sep 2001
Ort: Unterhaching/München
Beiträge: 513
Ja, in der Anleitung zu PureMVC wird empfohlen(vielleicht auch in den zig Beispielanwendungen, die man runterladen kann), es nach Pattern zu strukturieren, also einen Ordner für alle Models, einen für die Controller und einen für die Views. Das wäre nach Pattern unterteilt, weil das zugrundeliegende Pattern Model-View-Control heisst. Diese Struktur sollst Du innerhalb einer Anwendung natürlich nicht für jeden Teil duplizieren, sondern einfach alle Modelle, Views und Controller in die Ordner packen.

Wenn Du allerdings mit Multicore PureMVC anfängst, machst Du für jeden Core (abgeschlossener Teilbereich deiner Anwendung, eventuell ein Modul) eine neue Ordnerstruktur auf - wiederum mit einem Model, View und Controller Ordner.

OmegaPsi findet das nicht gut, weil es von der Semantik her wenig aussagekräftig ist, eine Problemdomäne nach generischen Worten wie Model, View und Control zu organisieren - schätze ich

Geändert von malthoff (02-07-2010 um 05:41 Uhr)
malthoff ist offline   Mit Zitat antworten
Alt 02-07-2010, 08:10   #11 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Struktur würde bei mir ungefähr so aussehen (ganz grob).

com.blabla.videoplayer
  • model
  • view
  • controller
com.blabla.mp3player
  • model
  • view
  • controller
Jedes Modul würde bei mir auch einen eigene Facade besitzen, so das sich diese auch wirklich leicht woanders verwenden lassen, ohne das ich irgendwelchen overhead von anderen Dingen mit "rumschleppe".
__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Alt 02-07-2010, 08:36   #12 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.147
Ja, so in der Richtung mache ich das auch. Ich versuche Patterns wie oder Abkürzungen wie "vo", "proxy" etc in packages zu vermeiden, da sie leider dann doch schon of in den Klassennamen vorkommen. Mich nerven diese Redundanzen und ich möchte, dass die Datentypen eine gutes und damit auch lesbares Modell abbilden. Ich unterteile in der Regel in model, view, controller und services.
Omega Psi ist offline   Mit Zitat antworten
Alt 02-07-2010, 08:40   #13 (permalink)
Crème brûlée
 
Registriert seit: Jan 2006
Ort: Düsseldorf
Beiträge: 719
Ah! Jetzt versteh ich, was du meinstest, Omega. Insofern halten sich unsere Packages an die Bestandteile der jeweiligen Patterns (model, view, controller, commands, etc.). Darunter sind aber Unterpackages für z.B. die konkreten Komponenten.
laxersaz ist offline   Mit Zitat antworten
Alt 02-07-2010, 08:41   #14 (permalink)
Don't panic
 
Benutzerbild von charly23121977
 
Registriert seit: Jul 2010
Beiträge: 13
Danke euch allen für die guten Ansätze.
charly23121977 ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
package, puremvc

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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
PureMVC 2 UML JohnJohnson Softwarearchitektur und Entwurfsmuster 1 18-03-2010 12:04
Package Struktur sure612 ActionScript 3 6 09-04-2009 07:44
Advanced DataGrid-Struktur anhand XML-Struktur erstellen nerd007 Flex programmieren 9 17-11-2008 23:30
XML Struktur in MovieClip Struktur übernehmen echo5-7 ActionScript 2 10 09-07-2008 15:31
Verzeichnis-Struktur für CD-ROM-Projekt psyk Flash 8 5 12-05-2006 13:06


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:42 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele