Frage

Ich habe ein MVP -Projekt geschrieben, bei dem die Ansicht eine Winform ist, die meine IView -Schnittstelle implementiert. Ich bin gerade dabei, den Code zu überprüfen und ihn zu verbessern, wo ich kann und möchte Ihre Gedanken darüber fragen, wie die Sicht und der Moderator interagieren. Welche der folgenden Aussagen ist Ihrer Meinung nach Best Practice?

  1. Belegen Sie die Methoden der Moderator -Klasse für die Verwendung. (dh sie öffentlich machen).
  2. Lassen Sie den Moderator Ereignisse hören, die von der View -Klasse angesprochen wurden.

Zum Beispiel verwendet mein MVP einen Dienst, der über ein Serialport kommuniziert. Um eine Verbindung zum Remote -Gerät herzustellen, ruft meine Ansicht die öffentliche Moderator -Methode Connect () auf, die dann die entsprechenden Servicemethoden aufruft.

Wäre es bessere Übung, ein Connect () -Event zu erhöhen und den Moderator darauf zu hören?

War es hilfreich?

Lösung

Im Allgemeinen arbeite ich so, dass die Ansicht vom Moderator abhängt und der Präsentator vom Modell abhängt. Dies bedeutet, dass das gleiche Modell von mehreren Präsentatoren verwendet werden kann, und derselbe Präsentator kann meine mehrfachen Ansichten verwendet werden (verschiedene UI -Layouts oder Winforms vs Web usw.). Um dies zu erleichtern, ruft die Ansicht öffentliche Methoden auf dem Moderator auf und hört auf Ereignisse des Moderators zu, um zu sagen, wann sich die Daten geändert haben.

Für ein Beispiel dafür, warum Sie auf diese Weise arbeiten möchten, stellen Sie sich eine Schnittstelle vor, die zwei Ansichten für einen Anfängerbenutzer und einen für einen Experten hat, wobei die Anfängeransicht eine Teilmenge der Expertenbefehle zeigt. Wenn derselbe Moderator für diese beiden Ansichten verwendet wird, muss die Anfängeransicht Ereignisse für alle Expertenbefehle aufdecken, da der Moderator sie benötigt, um dort zu sein, damit er an sie binden kann - obwohl sie niemals ausgelöst werden. Andererseits kann der Moderator Methoden für alle Expertenoptionen freilegen, und die Anfängeransicht ruft sie einfach nie auf. Dies bedeutet, dass weder die Ansicht noch der Moderator ungenutzte Funktionen implementieren.

Andere Tipps

Die Richtlinie, die ich hier folgen würde, lautet: "Öffentliche Methoden in Moderator sollten parameterlos sein. View -Objekt sollte auf nur parameterlose Methoden des Moderators zugreifen. Eine andere Option ist, dass die Ansicht Ereignisse definieren kann, die der Präsentator abonnieren kann. In beiden Fällen sollte es kein Parameterübergang geben . " . Offen für Sugeestions und Kommentare.

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