Frage

Ich habe traditionell ein Model-View-Presenter [Passive View] umgesetzt wie folgt:

interface IView
{
string Title {set;}
}

class frmTextBox : Form, IView
{
...
public string Title
{
set { this.txtTitle.Text = value; }
}
...
}


class frmLabel : Form, IView
{
...
public string Title
{
set { this.lblTitle.Text = value; }
}
...
}

class Presenter
{
private IView view;
...
public void UpdateTitle
{
this.view.Title = "A Good Title";
}
...
}

und ich habe traditionell nur primitive Typen in der IView Schnittstelle (int, string, bool), weil ich schon immer verstanden, dass Sie in der Ansicht vom Urtyp nur verwenden müssen. In einem Repository (wie NHibernate), wenn ich eine Liste von Elementen in einem DataGridView angezeigt werden soll, ich habe eine generische Auflistung passieren (IList<T>) aus dem Modell mit dem Presenter. Macht das die Regel hinter Ansichten als die nur aus primitiven Typen verletzt oder würde diese architektonisch in Ordnung sein?

Auch wenn ich einen Data Transfer Object (DTO) hatte, die mehr von einer Überwachungssteuerung wäre eher als passive Ansichtsart Ich versuche zu implementieren.

Die Gedanken ??

War es hilfreich?

Lösung

Muster existieren Sie entwerfen Sie Ihre Lösung helfen, basierend auf den Erfahrungen anderer.

Sie sind nichts anderes als formalisierte Vorlagen.

Verwenden Sie, was Struktur macht Sie produktiver, auch wenn es nicht eine willkürliche Definition perfekt passt.

Andere Tipps

Wow vielleicht fehlt Ich habe auf eine Menge aus. Ich habe noch nie Ansichten zu sehen nur die Anzeige primitive Typen beschränkt werden.

Ich würde interessieren, warum diese Einschränkung verwendet wird, und was ist der Nutzen ist? Das ist nicht zu sagen, dass „IMO es ist völlig falsch“, aber ich bin neugierig, seine Vorteile. Meine Überzeugung ist, dass Computer ausreichend mächtig sind, jetzt, es sei denn, Sie eine bestimmte Leistungsspezifikation, die Kosten eines Entwickler Hämmer sind Targeting weg einig Leitlinie passen eine teuere Nutzung von Ressourcen wäre.

Nicht, dass es jede Billigung ist per se. aber alle MVC Artikel, die ich habe, haben glücklich gesehen Banding um Klassen zwischen der View und Controller. Da MVP ist nur eine andere Form von MVC Ich würde sagen, wenn es kein Problem mit MVC ist sollte es mit MVP sein?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top