MVC

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo,
ich habe anhand des Tutorials MVC im FAQ-Bereich ein Programm geschrieben. Mein Problem: ich habe eine Methode, die die Daten aus dem Model in eine externe Datei speichert. Die Daten werden über das View eingegeben. Wie kriege ich nun die eingegebenen Daten (Inhalt der TextFelder) in das Model?

Ich dachte, ich definiere die JTextfields im View mit public und greife dann im Controller über:

Code:
character.setName(viewer.txtName.getText());

darauf zu, um sie im Model zu speichern.

(character ist das Model, viewer ist das View und txtName ist ein TextFeld, das die Daten für das Model entgegennehmen soll).

Ist das MVC konform?
Oder, ist es möglich einen zweiten Observer zu erstellen, der das Model updatet, wenn das View sich ändert? Also praktisch in umgekehrter Richtung wie das MVC Beispiel aus dem FAQ Bereich funktioniert.
 

Wildcard

Top Contributor
Anonymous hat gesagt.:
Oder, ist es möglich einen zweiten Observer zu erstellen, der das Model updatet, wenn das View sich ändert? Also praktisch in umgekehrter Richtung wie das MVC Beispiel aus dem FAQ Bereich funktioniert.
Nein, der erste Gedanke war schon richtig. Der Controller vermittelt zwischen Model und View. Das Model darf in keinem Fall abhängig von der View sein.
 

sliwalker

Top Contributor
Hoi,

ja die Idee ist ja schon mal nicht schlecht.
Wird aber leider so nicht gemacht. Du würdest dabei die Objektorientierung beißen. Erstell Dir Methoden, die public sind und den Wert des Feldes zurückgeben, welches auf jeden Fall private ist. Dann kannst Du im Control die Werte lesen und setzen.

greetz
SLi
 

sliwalker

Top Contributor
Ja, und was ist ein Hauptmerkmal der Objektorientierung?
Kapselung.

Aber Deine Aussage ist genauer ;)
 

Wildcard

Top Contributor
Du vermischst hier Kapselung im Sinne von Data-Hiding und Kapselung im OOP Sinn, sprich Kapselung von Logik in Objekten. Vom OOP Ansatz sind getter/setter und public Variablen äquivalent, da sich am Objekt-Konzept selbst nichts ändert.
Sorry, ich glaube ich bin heute etwas pingelig :roll:
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben