Frage

Bei der Umsetzung MVP-Muster in winforms oft ich aufgebläht Ansicht Schnittstellen mit zu vielen Eigenschaften, Getter und Setter finden. Ein einfaches Beispiel mit Blick mit 3 Tasten und 7 Textfeldern, die alle mit dem Wert, aktiviert und sichtbare Eigenschaften aus der Sicht ausgesetzt ist. Hinzufügen von Validierungsergebnisse für diese, und man konnte leicht mit einer Schnittstelle mit den 40ern Eigenschaften enden. Mit Hilfe des Präsentationsmodelles gibt werden als gut ein Modell mit der gleichen Anzahl von Eigenschaften sein.

Wie Sie tun einfach sync die Ansicht und das Präsentationsmodell ohne aufgeblähten Moderator Logik, dass alle Werte zurück und her übergeben? (Mit diesem Code Moderator 80ish Linie vorstellen, mit dem Moderator Test, spottet das Modell und Ansicht like..160ish Zeilen Code aussehen werden nur, dass der Transfer zu verspotten.) Gibt es einen Rahmen zu handhaben, ohne Datenbindung zu WinForms zurückgreifen? (Möchten Sie vielleicht unterschiedliche Ansichten benutzen als ein WinForms anzuzeigen. Nach einigen, sollte diese Synchronisierung die Moderatoren Job ..) verwenden würden Sie AutoMapper?

Im möglicherweise die falschen Fragen zu stellen, aber es scheint mir leicht MVP ohne eine gute Lösung aufgebläht wird hier ..

Keine korrekte Lösung

Andere Tipps

Das ist nur eine Idee, und ich weiß, wo einige Leute vielleicht nicht, wie es -. Es gibt viele verschiedene Dinge, die Sie hier tun können,

Wenn Sie sich selbst finden eine Menge Standardcode verwenden, kapseln es.

public class UiField<ContentType>
{
    public bool IsEnabled { get; set; }
    public ContentType Value { get; set; }
    public bool IsVisible { get; set; }
}

Ihrer Ansicht nach dann:

public interface ISampleView
{
    UiField<bool> IsStaffFullTime { get; set; }
    UiField<string> StaffName { get; set; }
    UiField<string> JobTitle { get; set; }
    UiField<int> StaffAge { get; set; }
    UiField<IList<string>> Certifications { get; set; }
}

Sie einpacken Hier die verschiedenen Eigenschaften mit jedem Feld zugeordnet ist.

übrigens, schlage ich vor, dass Sie nicht diese Schnittstellen von Hand zum Testen Stummel - ein Mockframework verwenden

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