Hey,
da ich mich gerade mit der Entwicklung von GUIs mittels Swing beschäftige, hab ich mich mal an das MVC-Konzept gesetzt. Dabei ist folgendes herausgekommen:
Model:
Controller:
View:
Hauptklasse:
Hab ich das so richtig verstanden? Sollte man beispielsweise im Model nur ein Objekt darstellen und die 'getPersonById' Methode (welche später z.B. die Datenbankabfrage ausführt) in den Controller auslagern oder hat die dort nichts zu suchen?
Ist das auch korrekt, dass ich die Daten in der View vom Controller hole, oder ist es besser, vom Controller aus die View zu bestücken? :bahnhof:
Danke schonmal
da ich mich gerade mit der Entwicklung von GUIs mittels Swing beschäftige, hab ich mich mal an das MVC-Konzept gesetzt. Dabei ist folgendes herausgekommen:
Model:
Java:
package model;
public class Person {
private String firstName;
private String lastName;
public Person() {}
public Person(String firstname, String lastname) {
this.firstName = firstname;
this.lastName = lastname;
}
public Person getPersonById(long id) {
Person person = new Person();
person.setFirstName("Max");
person.setLastName("Mustermann");
return person;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}
Controller:
Java:
package controller;
import model.Person;
public class PersonController {
private Person model;
public PersonController(Person model) {
this.model = model;
}
public Person getModel() {
return model;
}
public void setModel(Person model) {
this.model = model;
}
}
View:
Java:
package view;
import controller.PersonController;
public class PersonView {
private PersonController controller;
public PersonView(PersonController controller) {
this.controller = controller;
this.showDetails();
}
private void showDetails() {
System.out.println("Firstname: " + controller.getModel().getPersonById(1).getFirstName());
System.out.println("Lastname: " + controller.getModel().getPersonById(1).getLastName());
}
}
Hauptklasse:
Java:
package main;
import model.Person;
import view.PersonView;
import controller.PersonController;
public class MVCMain {
public static void main(String[] args) {
PersonController controller = new PersonController(new Person());
PersonView view = new PersonView(controller);
}
}
Hab ich das so richtig verstanden? Sollte man beispielsweise im Model nur ein Objekt darstellen und die 'getPersonById' Methode (welche später z.B. die Datenbankabfrage ausführt) in den Controller auslagern oder hat die dort nichts zu suchen?
Ist das auch korrekt, dass ich die Daten in der View vom Controller hole, oder ist es besser, vom Controller aus die View zu bestücken? :bahnhof:
Danke schonmal