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

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 26-11-2007, 17:23   #1 (permalink)
Neuer User
 
Benutzerbild von bruce_wayne
 
Registriert seit: Nov 2005
Beiträge: 130
wie managed ihr eure packages?

hallo,

setzt man ein grösseres projekt mit MVC oder ähnlichen mustern um fallen ja schnell mal ziemlich viele klassendaeien an, die es gilt geschickt in packages zu gliedern.

wie handelt ihr das?

mein gedanke:

- core.mvc (basisklassen, von denen controller und view erben)
- core.data (basisklassen für die speicherung von datenstrukturen)

- ui (views)
- controls (controllers, listener, events, etc)
- data (model, xmlparser, etc)
- lang (sprachswitch)
- utils
bruce_wayne ist offline   Mit Zitat antworten
Alt 26-11-2007, 18:12   #2 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Bremen
Beiträge: 13.370
Das ist so schon ok.
Omega Psi ist offline   Mit Zitat antworten
Alt 26-11-2007, 20:28   #3 (permalink)
l2l|c4o
 
Benutzerbild von Sir Freako
 
Registriert seit: Nov 2005
Ort: düstere Grotte im Süden
Beiträge: 1.262
Noch mehr Überblick hätte man so :

projekt.core.View : UI

projekt.core.Model.listeners : listener, events (die Event Listener höhren ja nur darauf was der Controller so macht also gehören Sie meiner Meinung nach ins Model / Listener == Observer > rooting

projekt.core.Model.utils
projekt.core.Model.lang
projekt.core.Model.data

projekt.core.Controller.controller

und dann halt auf alles adaptieren

projekt.modul.Model
projekt.modul.View
projekt.modul.Controller

da ist dann gleich onSteam (ihr kennzes scho's Stückerl)

thats funny omega Psi

Geändert von Sir Freako (26-11-2007 um 20:58 Uhr)
Sir Freako ist offline   Mit Zitat antworten
Alt 27-11-2007, 21:36   #4 (permalink)
Nagelneuer User
 
Benutzerbild von hazy fantazy
 
Registriert seit: Dec 2005
Beiträge: 923
Die Frage ist: Was ist ein package überhaupt?
Ist es eine Art Metaklasse, also die Klassen eines Packages bilden eine gemeinsame Funktionalität ab, z.B. ein package compiler hat die Klassen Scanner, Parser, Generator?
Oder ist es eher eine Organisationshilfe, wie z.B. ein package events, das alle Subklassen von Event enthält, ein package command, das alle Subklassen von Command enthält, usw.
__________________
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
hazy fantazy ist offline   Mit Zitat antworten
Alt 27-11-2007, 21:56   #5 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg
Beiträge: 4.385
gute Frage, hazy fantazy
Bin jetzt irgendwie verwirrt, ich glaube bisher hab ich das immer so gemacht, wie es eben passte, aber nicht konsequent, sondern mal so, mal so.

Zum eigentlichen Problem:
ich würde einzelne Packages für View, Model und Controller machen, das kann nicht schaden, und sorgt für Übersichtlichkeit, wenn es dann mal viele Klassen werden.
__________________
»Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!)
Janoscharlipp ist offline   Mit Zitat antworten
Alt 27-11-2007, 22:14   #6 (permalink)
Neuer User
 
Benutzerbild von :: RK ::
 
Registriert seit: Jan 2002
Beiträge: 5.445
Zitat:
Zitat von hazy fantazy Beitrag anzeigen
Die Frage ist: Was ist ein package überhaupt?
Ist es eine Art Metaklasse, also die Klassen eines Packages bilden eine gemeinsame Funktionalität ab, z.B. ein package compiler hat die Klassen Scanner, Parser, Generator?
Oder ist es eher eine Organisationshilfe, wie z.B. ein package events, das alle Subklassen von Event enthält, ein package command, das alle Subklassen von Command enthält, usw.
hi,
also ich bin folgender Meinung, was Packages angeht:
wenn man sich mal den SourceCode von PaperVision3D anschaut, dann
sieht man doch recht gut, wie das mit dem Packages gemeint ist. Es gibt
merhere Unterverzeichnisse (Ordner) im Projektverzeichnis:
  • cameras
  • components
  • core
  • events
  • materials
  • objects
  • scenes
  • utils
Jedes Verzeichnis beinhaltet nun mehrere Klassen:
Z.B. das Verzeichnis "objects":
  • Plane.as
  • Spere.as
  • Cylinder.as
  • Cubes.as
  • etc...
schaut man sich bsplw. "Plane.as" an dann steht da folgendes:
Code:
package org.papervision3d.objects
{
  [...]
  public class Plane extends TriangleMesh3D
  {
    [...]
  }
}
In der "Sphere.as" Datei steht dieses drin:
Code:
package org.papervision3d.objects
{
  [...]
  public class Sphere extends TriangleMesh3D
  {
    [...]
  }
}
Also die eigentlichen Klassen "Plane" und "Sphere" sind beide Bestandteil des
Packages "objects". Es gibt jedoch keine "Packages" Datei die irgendwelche
Bestimmungen beinhaltet. Es ist eher eine Organisationshilfe für den
Programmierer, damit er später weiß welche Klasse was macht und zu wem
gehört. Aber ich denke es hat keinen programmiertechnischen Einfluss.

__________________
Das Glück im Leben hängt von den guten Gedanken ab, die man hat.

Easing_Equations / Flash Kontaktformular / FlashPlugin W3C konform / Nützliche Beiträge zu FAQs
:: RK :: ist offline   Mit Zitat antworten
Alt 27-11-2007, 22:25   #7 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg
Beiträge: 4.385
Bei Papervision sind die Klassen nach ihren Basisklassen in Packages geordnet. Klasse X erbt von Klasse Y? Ab in package y mit Klasse X.
Das utils-Package hingegen ist eine Sammlung von Klassen, die nichts im Vererbungspfad miteinander gemein haben, wenn man die Namen ansieht, würde eigentlich alles für ein interactivity-Package sprechen, sie wurden aber einfach in "utils" gepackt. Ist also auch nicht unbedingt ein Musterbeispiel in meinen Augen.
__________________
»Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!)
Janoscharlipp ist offline   Mit Zitat antworten
Alt 27-11-2007, 22:34   #8 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Bremen
Beiträge: 13.370
Zitat:
Zitat von hazy fantazy Beitrag anzeigen
Die Frage ist: Was ist ein package überhaupt?
Ist es eine Art Metaklasse, also die Klassen eines Packages bilden eine gemeinsame Funktionalität ab, z.B. ein package compiler hat die Klassen Scanner, Parser, Generator?
Oder ist es eher eine Organisationshilfe, wie z.B. ein package events, das alle Subklassen von Event enthält, ein package command, das alle Subklassen von Command enthält, usw.
Ist das von dir eine rethorische Frage? Packages sind nichts anderes als Namensräume, wie du weisst. In Java werden diese ja oft nach Domain/Projekt/Funktionalität getrennt.

Ich persönlich verwende Namen nicht nach MVC Konventionen (falls es dafür Konventionen geben sollte) auch wenn es nicht Schaden kann. Wenn ich einen reine Feed API baue ist es klar, dass es nur Model + Controller gibt etc.

@freako was ist funny?
Omega Psi ist offline   Mit Zitat antworten
Alt 27-11-2007, 22:51   #9 (permalink)
Nagelneuer User
 
Benutzerbild von hazy fantazy
 
Registriert seit: Dec 2005
Beiträge: 923
Nein, rethorisch ist die Frage nicht. Ich glaube, die Frage nach der optimalen Packagestruktur ist eine Optimierungsfrage. Verschiedene Kriterien muessen gegeneinander abgewogen werden. Die Entscheidung hängt letztlich von vielen Faktoren ab, wie z.B. persönlichen Vorlieben, Groesse des Teams, Unterstützung durch die IDE, etc.
Wenn ich klassisch mit Cairngorm arbeite, verteile ich die Klassen in verschiedene Packages, Events in das eine, Commands in ein anderes, Models in ein drittes und Views in ein viertes Package. Wenn diese Klassen jedoch immer zusammen benutzt werden, würde ich sie eher in "ein" Package stecken, als sie ihrer Art gemäß zu verteilen.

Gibt es noch andere Kriterien als diese? Also Package zur Organisation einer Einheit (alle Motorteile in ein Package) oder zur Organisation einer Art von Dingen (Muttern in ein Package, Unterlegscheiben in ein anderes). Package zur Vermeidung von Namenskonflikten fiele mir noch ein.
__________________
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 (27-11-2007 um 22:53 Uhr)
hazy fantazy ist offline   Mit Zitat antworten
Alt 27-11-2007, 23:09   #10 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Bremen
Beiträge: 13.370
Nun ja, Namespaces nannte ich ja schon und das finde ich nach wie vor auch am wichtigsten da ich die Benennung der Klassen für tendenziell wichtiger halte (sie Baum vs XML).

In einen Java Projekt habe ich mit verschiedenen packages gearbeitet um auto-generierte Stub- und Service-Klassen von meinen eigenen zu trennen. Diese erbten oder/und implementierten die Interfaces/Klassen. Hinterlegt habe ich diese in ./client/impl und ./service/impl um ServiceStubs und Service-Implementierungen trennen zu können. Hatte ausserdem den Vorteil, dass ich packages leichter verwalten konnte, falls ich die auto-generierten packages löschte und ein Refaktoring meiner XML Schemata durchführte. In dem Fall war meine Wahl zusätzlich zum Namensraum und der Trenneung von Funktionalitäten von packages (bzw. der enthaltenden Klassen) auch rein pragmatisch.
Omega Psi 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 02:30 Uhr.

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


Copyright ©1999 – 2014 Marc Thiele