Ich habe mal eine grundlegende Entwurfsfrage für eine Anwendung mit folgenden Merkmalen:
Das klappt auch alles wunderbar, aber beim Entwurf grüble ich noch etwas.
Instinktiv hätte ich eine Klasse ("Runable") geschrieben:
class Runable{
string filename;
public string Filename {
get { return this.filename; }
set { this.filename = value; }
}
public void Run() {
Process.Start(this.filename);
}
}
(das ist jetzt stark vereinfach)
Beim Erzeugen der GUI hätte ich dann das OnClick-Event mit der jeweiligen instance.Run() Methode verknüpft.
Was mir daran aber nicht behabt: Die View greift dann direkt auf das Modell zu und veranlasst die Ausführung.
Vielleicht bin ich auch auf dem Holzweg und MVC ist die das beste Vorgehen für die .NET Sprachwelt?
Hallo IgG,
Die View greift dann direkt auf das Modell zu
das ist das normale und vollkommen ok. Das View muss und wird immer auf das Modell zugreifen. Nur andersherum wäre es ein Problem. Das Modell sollte nie auf das View zugreifen. Es sollte das View nicht mal kennen.
herbivore
Ich würd dir auch dringend empfehlen, Run() als virtual zu markieren, dann kannst du in abgeleiteten Klassen vielleicht noch andere schoene Dinge mit den Dateien machen als Diagnostics.Process.Start
Original von herbivore
Die View greift dann direkt auf das Modell zu
das ist das normale und vollkommen ok. Das View muss und wird immer auf das Modell zugreifen. Nur andersherum wäre es ein Problem. Das Modell sollte nie auf das View zugreifen. Es sollte das View nicht mal kennen.
Aber das Starten eines Prozesses, wie das Modell es in diesem Fall tut, wäre doch eher die Aufgabe einer Controllerklasse?
Sicherlich ist beides in diesem Fall OK, persönlich würde ich aber sicherlich auch einen Controller haben der die Datei aufruft. Ich mag es einfach wenn Views austauschbar sind, aber es kommt immer auf den Kontext an.
Gruß
dragi