| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User 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 |
| | |
| | #3 (permalink) |
| l2l|c4o Registriert seit: Nov 2005 Ort: düstere Grotte im Süden
Beiträge: 1.118
|
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) |
| | |
| | #4 (permalink) |
| Nagelneuer User Registriert seit: Dec 2005
Beiträge: 924
|
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 |
| | |
| | #5 (permalink) |
| muh Registriert seit: Apr 2002 Ort: Freiburg
Beiträge: 4.350
|
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!) |
| | |
| | #6 (permalink) | |
| Neuer User Registriert seit: Jan 2002 Ort: Umgebung Stuttgart
Beiträge: 5.459
| Zitat:
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:
Z.B. das Verzeichnis "objects":
Code: package org.papervision3d.objects
{
[...]
public class Plane extends TriangleMesh3D
{
[...]
}
} Code: package org.papervision3d.objects
{
[...]
public class Sphere extends TriangleMesh3D
{
[...]
}
} 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 | |
| | |
| | #7 (permalink) |
| muh Registriert seit: Apr 2002 Ort: Freiburg
Beiträge: 4.350
|
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!) |
| | |
| | #8 (permalink) | |
| Perverted Hermit Registriert seit: Mar 2004 Ort: Delmenhorst
Beiträge: 12.898
| Zitat:
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? | |
| | |
| | #9 (permalink) |
| Nagelneuer User Registriert seit: Dec 2005
Beiträge: 924
|
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) |
| | |
| | #10 (permalink) |
| Perverted Hermit Registriert seit: Mar 2004 Ort: Delmenhorst
Beiträge: 12.898
| 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. |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |