PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Frage zur View im MVC-Muster


Senior Sanchez
2006-03-23, 17:19:21
Hi,

Ich arbeite gerade an einem Programm für einen Wettbewerb und da würde ich gerne das MVC-Muster verwenden, aber natürlich auch richtig und nicht irgendwie hingepfuscht ;)

Meine Frage bezüglich der View ist nun folgende: Darf die View eigene Datentypen (bzw. Objekte selbstgeschriebener Klassen) nutzen oder muss sie über den Controller mittels generischer Datentypen (also Standard Klassen vom JDK z.B.) nutzen?

Ist vllt etwas kompliziert, ich will auch nicht zu sehr ins Detail gehen (die Konkurrenz schläft ja nicht ;) ), aber meine Frage ist im Grunde ob die View direkt die entsprechenden Objekte und ihre Methoden nutzen darf oder ob es zum Beispiel über Strings gehen muss, die der Controller aus dem Model zusammenbastelt?

Ich glaube ja, dass die View wirklich die Objekte nutzen darf, zumal sich laut wikipedia-Definition die View und das Model ja oft kennen, aber ich will halt auf Nummer sicher gehen.


Danke für die Hilfe

darph
2006-03-24, 12:44:28
Java? Ja, darf die Objekte nutzen. Glaube ich.

Das Model definiert ja die Schnittstelle, darauf setzt die View auf. Rein logisch hast du erst das Model und schreibst dann die View dazu.

Nehmen wir an du hast ein Objekt Person und darin gibt's ein Feld Vorname und ein Feld Nachname und du willst das in einem Fenster darstellen. Das Objekt hat für jedes Feld eine get Methode und dann müßtest du für jedes weitere Feld noch eine Methode im Model schreiben, das die Daten der View zur Verfügung stellt.

Da ist es doch deutlich einfacher und schöner, der View direkt die Person zu übergeben. Ansonsten müßtest du, wenn du jetzt noch das Alter zur Person hinzufügst, noch mehr Methoden schreiben (nämlich die, die das Alter aus der Person ausliest und dies dann an die View propagiert). Das kann sich die View doch auch selbst aus der Person rausziehen. Je weniger Übergabemethoden du hast, desto schwächer die Kopplung, desto angenehmer das Warten des Codes.



Abgesehen davon ist die View ja trotz Design Pattern spezifisch für dieses Projekt. Muß es ja. Insofern hat es gar keinen Sinn, das auf möglichst einfache Datentypen runter zu brechen...

Senior Sanchez
2006-03-24, 16:32:35
Java? Ja, darf die Objekte nutzen. Glaube ich.

Das Model definiert ja die Schnittstelle, darauf setzt die View auf. Rein logisch hast du erst das Model und schreibst dann die View dazu.

Nehmen wir an du hast ein Objekt Person und darin gibt's ein Feld Vorname und ein Feld Nachname und du willst das in einem Fenster darstellen. Das Objekt hat für jedes Feld eine get Methode und dann müßtest du für jedes weitere Feld noch eine Methode im Model schreiben, das die Daten der View zur Verfügung stellt.

Da ist es doch deutlich einfacher und schöner, der View direkt die Person zu übergeben. Ansonsten müßtest du, wenn du jetzt noch das Alter zur Person hinzufügst, noch mehr Methoden schreiben (nämlich die, die das Alter aus der Person ausliest und dies dann an die View propagiert). Das kann sich die View doch auch selbst aus der Person rausziehen. Je weniger Übergabemethoden du hast, desto schwächer die Kopplung, desto angenehmer das Warten des Codes.



Abgesehen davon ist die View ja trotz Design Pattern spezifisch für dieses Projekt. Muß es ja. Insofern hat es gar keinen Sinn, das auf möglichst einfache Datentypen runter zu brechen...


Genauso habe ich mir das auch gedacht. Aber es hätte ja sein können, dass ich da irgendetwas übersehen habe bzw. irgendein Kniff, mit dem ich die Probleme lösen könnte ;)