MVC - Kommunikation Controller <> Gui

Status
Nicht offen für weitere Antworten.

KSG9|sebastian

Top Contributor
Hi Leute,

verstößt sowas gegen das MVC-Prinzip..

Interface das vom Controller implementiert wird

Code:
public interface MvcController{
    public void addText(String path);
    public void deleteText(String path);
}

GUI

Code:
public class Gui extends JFrame{
 
private MvcController controller;

public Gui(MvcController controller){
   super("blub");
   this.controller = controller;
}
public void doSomething(){
   //Die Methode wird von nem Listener aufgerufen (z.B. TreeSelectionListener)
   controller.addText("abc");
}
}

Controller

Code:
public class Controller implements MvcController{
 

public void addText(String path){
  //do something with 'path'
}
public void deleteText(String path);
  //do something with 'path'
}


Wäre das hinsichtlich des MVC-Designs korrekt ? Habt ihr andere/bessere Vorschläge?
Könnte ich die Kommunikation zwischen Gui und Daten genauso regeln ?

Wie ist die Aufgabenverteilung von Gui <> Controller und Gui <> Modell
Angenommen ich will ne String-Array in der Gui ausgeben, kann ich mir die direkt vom Modell holen (so wie oben, mittels eines Interfaces) oder muss ich den "Umweg" über den Controller nehmen ?

Gruß seb

Gruß seb
 
KSG9|plak hat gesagt.:
Angenommen ich will ne String-Array in der Gui ausgeben, kann ich mir die direkt vom Modell holen (so wie oben, mittels eines Interfaces) oder muss ich den "Umweg" über den Controller nehmen ?
Ich denke, der Controller muss in deinem Fall wissen, wann das String-Array angezeigt werden soll und der Controller muss die Werte in der GUI setzen.
IMHO ist es falsch, wenn sich die GUI die Daten selbst holt (egal ob beim Controller oder beim Modell)
 
Ok, dann würde das szenario so aussehen:

Model schickt nachricht an Controller
controller holt vom model die daten und schickt sie an die gui
gui zeigt an
 
KSG9|plak hat gesagt.:
Ok, dann würde das szenario so aussehen:

Model schickt nachricht an Controller
controller holt vom model die daten und schickt sie an die gui
gui zeigt an
das wäre MVC at its best 🙂
 
deathbyaclown hat gesagt.:
KSG9|plak hat gesagt.:
Ok, dann würde das szenario so aussehen:

Model schickt nachricht an Controller
controller holt vom model die daten und schickt sie an die gui
gui zeigt an
das wäre MVC at its best 🙂

ist Geschmacksfrage

klar ist bei MVC eigentlich nur, dass die View nix vom Model wissen soll, aber wie View und Controller interagieren, da gibts doch einigen Spielraum

wenn der Controller ein Interface publiziert (und intern implementiert), das von der View benutzt wird, um an die Daten des Models zu kommen ist das IMHO völlig OK

da spart man sich doch einiges an Overhead, denn der Aufruf
Code:
    controller.addText("abc");
aus der View heraus ist dann gleichzeitig auch die "Nachricht", etwas mit diesen Daten zu machen
 
jo, ich lass es erstmal so, dass der controller ein interface implementiert, und die gui mit diesem interface etwas vom controller "anfordert"

sonst muss ich wieder "umständlich" programmieren, so dass die view ne funktion im controller aufruft, der controller dann daten an die view schickt und die view die daten anzeigt
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben