Frage zu MVC-Struktur

UnkiDunki

Grünschnabel
Hi,

ich beschäftige mich gerade mit der MVC-Struktur und habe trotz vieler bereits gelesenen Tuts, Beispiele und Codes noch immer ein gewisses "Aufteilungs/Zerlegungsproblem", was anscheinend aber nicht nur mir so geht und auch recht individuell entscheidbar zu sein scheint oder trügt mich da mein Eindruck?

Jedenfalls würde gerne mal über folgendes Szenario eure Meinungen hören und wie ihr dieses strukturieren bzw. aufteilen würdet...

Mal angenommen ich habe ein Panel mit einer JTable- und einer JTree-Komponente, die beide aus einer Datenbank gefüllt werden sollen. Beide funktionieren ja nach schon nach dem MVC-Prinzip. Setze ich z.B. die Models neu, so ändern sich ohne meine Zutun automatisch deren Views.
Sowohl Table als auch Tree habe ich mit eigenen Listenern ausgestattet, die bei Datenänderung und anderem reagieren. Diese habe ich in der View implementiert und kann so also auf Ereignisse dieser beiden Komponenten reagieren... z.B. mit (De)Aktivieren von Buttons etc.

Die meiner Meinung nach schwerste Frage ist: Was gehört eigentlich in das Model?
1.) Müsste ich korrekterweise TreeModel und TableModel in mein eigenes Model packen und mein Model dann mit getTreeModel() und getTableModel()-Methoden ausstatten, so dass ich in der View anfänglich die beiden Models auf die jeweiligeTable- und Tree-Komponenten setze, nachdem ich zuvor in der Controller-Klasse das Füllen der Models aus der DB veranlasse?

2.) Wie geschieht dann z.B. das Löschen eines Elementes aus der Tree. Das ganze soll nicht direkt in der Tree passieren, sondern in der DB und dann der Baum neugebaut werden...
Die Grundlage ist klar: Ein Button in der View, der via ActionListener die Methode deleteNode(nodesID) in der Controller-Klasse aufruft...
Aber dann? Die Löschen-Query in der Controllerklasse direkt ausführen und bei erfolgreichem Löschen, die Methode zum Neuerstellen in der Model-Klasse aufrufen oder gehört praktisch auch die DB-Ausführungen in die Model-Klasse... Bei letzterem hätte ich mir aber dann den Weg über Controller sparen können (höchstens vielleicht zwecks Parameterüberprüfung um dieses aus der View auszulagern).
Ist das ne Art "Philosophiefrage" oder gibt es da einen einzigen richtigen Weg bzw. DIE Struktur um eben beschriebenes auszuführen?

Ich habe bestimmt noch mehr Fragen bzgl MVC, aber ich denke, dass das erstmal meine wichtigsten Fragen waren und ich diesen Thread dann gerne für anschließend bzw. sich ergebene Fragen zu nutzen.

Freue mich über eure Antworten :)
 
Zurück