JavaFX Projekt-Struktur

Tom299

Bekanntes Mitglied
Hi,

ich werde demnächst ein größeres Projekt in JavaFX angehen und bin mir noch nicht sicher, wie ich das Projekt am Besten strukturieren soll.

Im Moment hab ich alle Controller in einem Controller-Package, alle FXMLs in einem FXML-Package, die Models im Model-Package, CSS im Style-Package usw.

Habe aber auch schon gesehen, daß man einzelne "Komponenten" in ein eigenes Package legt, also Controller, FXML-Datei, Model, css. Bei dem Vorgehen entstehen halt sehr viele Packages.

Ich würde gerne wissen, was sich in größeren Projekten so bewährt. Vielleicht gibts ja noch andere/bessere Möglichkeiten, Projekte zu strukturieren?


Gruß Tom
 
Ich würde es wie du machen, bzw. habe es schon so gemacht. Wenn du sehr viele Controller (10+) hast, würde ich vielleicht langsam überlegen, sie logisch zu gruppieren oder aber z.B. nach Dialog- und normalen Controller unterscheiden.
Wenn du z.B. einen Wizard mit 5 Pages machst, würde ja jede Page einen Controller erhalten, daher würde ich da wohl ein eigenes Package machen.

Aber sonst. Ich denke dein e Ansatz klingt gut. Kannst es ja mal etwas genauer als Baum oder aufzeigen:
Code:
<country>
\
 <company>
 \
  <department>
  \
   <project-name>
   \
    Main.java
    db
    \
     impl
    ui
    \
     ControllerA.java
     ...
     ControllerZ.java
     dialog
     \
      DialogControlerA.java
     style
     \
      app.css
     fxml
     \
      ViewA.fxml
    model
    \
     ....
 
Oh danke, das mit dem Wizard war ein guter Tip. Ich denke es ist sinnvoll, Packages für "gleiche bzw. verwandte Komponenten" anzulegen.

Ich hab jetzt z.B. auf der einen Seite Berichte (Übersicht, Erfassung) und z.B. Kunden (Übersicht, Erfassung) und auch Dialoge. Den Dialogen hatte ich schon in Ungedanken (sollte anfangs nur ein Test werden) ein eigenes Package gegeben.

Aber vermutlich könnte ich Packages für Berichte, Kunden, Dialoge etc. anlegen und dort dann die entsprechenden Controller, Models, usw. anlegen. Und gleiches dann für die FXMLs und Styles. Ein bischen Gruppieren und dann sieht das schon ordentlich aus, hoffe ich 😉

Edit: hab grad mal 2 Versionen durchdacht, glaube die 2. macht mehr Sinn, aber vielleicht kann ich da noch z.B. Interfaces, Converter und solche Sachen allgemein zusammenfassen:
Code:
Version 1:

de.test.programmname
  - Start.java
 \
  de.test.programmname.controller
  \
   de.test.programmname.controller.berichte
     - BerichtController.java
     - BerichtUebersichtController.java
   de.test.programmname.controller.kunde
     - KundeController.java
     - KundeUbersichtController.java
 \
  de.test.programmname.model
  \
   de.test.programmname.model.berichte
   

Version 2:
de.test.programmname
  - Start.java
 \
  de.test.programmname.berichte
  \
   de.test.programmname.berichte.controller
     - BerichtController.java
     - BerichtUebersichtController.java
     - DateianhangController.java
   de.test.programmname.berichte.model
     - Bericht.java
   de.test.programmname.berichte.converter
     - ProblemStringConverter.java
     - KategorieStringConverter.java
 \
  de.test.programmname.kunde
  \
   de.test.programmname.kunde.controller
     - KundeController.java
     - KundeUebersichtController.java	 
   de.test.programmname.kunde.model
     - Kunde.java
   de.test.programmname.kunde.converter
     - KundeStringConverter.java
 
Zuletzt bearbeitet:

Zurück
Oben