Gibt es (bei JavaFX) irgendwelche (eleganten) Methoden um Klassen kleiner zu machen bzw. Code auszulagern ?
Ich habe da eine Controller-Klasse mit.. (kA. sagen wir einfach 100) FXML - Komponenten also eine A.java, die zu einer A.fxml gehört. Die Controller-Klasse hat 20 Funktionen, das sind aber alles Funktionen die massivst mit den FXML - Komponenten (also der View) arbeiten.
Da die Klasse ohne Kommentierung aber bereits 3000+ Zeilen Quellcode hat würd ich sie gerne kleiner machen - welche sinnvollen, einfachen und eleganten Methoden habe ich dies zu bewerkstelligen ?
Wie gesagt in den Methoden brauch ich leider andauernd die View-Komponenten...
Ich habe bereits versucht Getter/Setter für die Komponenten zu bauen um sie dann in einer anderen Klasse zu benutzen, aber bei der großen Anzahl Komponenten waren es dann auf einmal 4000 Zeilen, das hab ich dann bleiben lassen...
Also das das so möglich ist, ist zwar sehr schön aber das jetzt im Nachhinein noch zu machen empfinde ich als recht kompliziert... wenn dann muss man das vorher planen denke ich, eine solche neue Komponente anzulegen.
Bei meiner Klasse sehe ich keine Möglichkeit da jetzt noch was Sinnvolles mit zu machen...
ja, ich habe sozusagen für jedes Fenster einen Controller. Das sind aber alles recht kleine Teilbereiche der Anwendung, der mit Abstand größte weitere Controller hat 422 Zeilen.
Es handelt sich bei der großen Klasse quasi um den Controller des sehr komplexen Hauptfensters.
Dadurch, dass ich da viel mit Tabs gearbeitet hab sind da mehrere Erfassungsfenster und Übersichts-Views drin zusätzlich zu diversen Button-Verarbeitungen. Das benötigt natürlich alles irgendwo seinen Code... diverse Listener etc.
(zumal sich das irgendwo auch multipliziert.. du machst bei 5 Erfassungsfenstern halt in der Speichern-Funktion schon alles.. naja mal 5 )
Und während ich das schreibe denke ich dass das auch genau der Grund ist warum die Klasse so groß geworden ist...damit sollte ich daran nicht mehr viel rütteln können..
Das klingt für mich, nach deiner Beschreibung, für den Fehler. Du solltest nur eine Speichern-Funktion haben, die diese Aufgabe für alle 5 Erfassungsfenster ausübt. Du solltest nochmal in deinem Code, allgemein an allen Stellen, prüfen, ob da nicht Dinge das gleiche oder sehr ähnliches machen. Wenn ja kann man diese zu einer Methode zusammenfassen und mithilfe von Parametern und Variablen variieren.
@Nemesys88
Kannst du vl bisschen Code posten? Ich bin mir ziemlich sicher, dass man da n paar Strukturprobleme finden könnte, die den Code unnötig aufblähen.