GWT MVP Architektur Vorteile

7

Ich lerne GWT und habe an mehreren Stellen gelesen, dass die MVP-Architektur am besten für die Entwicklung einer GWT-Anwendung geeignet ist

Ich habe auch gelesen, dass es leicht ist, Tests mit dem MVP ARCH zu machen. Kann mir jemand erklären, warum es leicht ist, Tests mit der MVP-Architektur durchzuführen.

Auch ich arbeite an einem Projekt mit MVP und ich finde es sehr mühsam, um die Ansicht mit der Datenbank verbinden zu machen.Ich meine, ich muss meine Presenter, Service, serviceAsync, servicImpl, Fassaden zu aktualisieren, um die Verbindung zu machen Datenbank.

Also kann mir jemand die Essenz von MVP für GWT zur Verfügung stellen? Ich würde mich über ein paar Beispiele freuen.

    
Barry 23.10.2010, 22:26
quelle

2 Antworten

23

Die Trennung zwischen dem Präsentator (der Logik enthält) und der Ansicht (ein dummer Wrapper um UI-Steuerelemente) ermöglicht Ihnen:

  • Schreiben Sie Komponententests für die Moderatoren, die ohne die entsprechende Umgebung (Desktop, Browser, GWT-Widgets) ausgeführt werden können
  • Wiederverwenden von Front-End-Logik, ohne an eine bestimmte Gruppe von Widgets / UI-Framework gebunden zu sein

Der letztere Anwendungsfall ist selten. Konzentrieren wir uns also auf die Eignung des MVP-Modells für automatisierte, programmatische Tests. Mit einem Team von Entwicklern nimmt dies oft die Form eines kontinuierlichen Build- / Testzyklus mit Hilfe von Hudson (oder ähnlich) auf einem kopflosen Server an Es ist nicht praktisch, einen Webbrowser zu öffnen, Steuerelemente usw. zu erstellen, wenn ein Test ausgeführt wird.

Eine typische Verwendung von MVP + GWT besteht darin, dass Ansichten eine Schnittstelle implementieren, die vom Präsentator bereitgestellt wird, und diese Schnittstelle wird häufig im Hinblick auf andere generische Schnittstellen definiert. Hier ist ein sehr einfacher Moderator, der beim Klicken auf eine Schaltfläche eine numerische Beschriftung inkrementiert. Beachten Sie, dass statt der Button direkt, gibt die Ansicht generisch zurück HasText und HasClickHandlers Instanzen:

%Vor%

Die "echte" Ansicht gibt UI-Widgets zurück (in diesem Beispiel über UiBinder erstellt):

%Vor%

Bei Komponententests wird eine Dummy-Implementierung erstellt (oder verwenden Sie Mockito , EasyMock usw.) und benötigen daher keine UI-Komponenten:

%Vor%

Was Ihren nächsten Absatz angeht: Ihre Ansichten sollten sich überhaupt nicht mit der Datenbank verbinden! Der Präsentator sollte Daten über Service / ServiceAsync anfordern (oder eine Abstraktion wie gwt-dispatch oder gwt-platform ), rufen Sie dann Methoden in der Ansicht auf, um die Benutzeroberfläche aufzufüllen.

Übrigens sind die letzten beiden Links (zusammen mit gwt-presenter ) ein guter Anfang, wenn Sie suchen nach GWT-MVP-Codebeispielen - in Kombination mit Google GIN bieten sie Frameworks zum Verknüpfen all dieser Elemente .

Nachdem ich all das gesagt habe, stimme ich zu - die Kombination von GWT + MVP + Java kann harte Arbeit sein und extrem ausschweifend (Ich bin froh, dass ich heutzutage nicht viel damit arbeiten muss ). Die Alternative ist jedoch noch weniger attraktiv: ein untestabiler, nicht zu erhaltender Ball aus Spaghetti ...

    
SimonJ 23.10.2010, 22:52
quelle
0

Vielleicht möchten Sie sich die gwt-Plattform-Applikation anschauen, die über hog- getgottet wurde - & gt; Ссылка .

Prost Markiere

    
Mark 25.10.2010 20:32
quelle

Tags und Links