© Liashko/Shutterstock.com
Entwickler Magazin
MVP Pattern und Activities and Places Framework

GWT für Anspruchsvolle

Die Anforderungen an komplexe User Interfaces in Webapplikationen werden höher und die Technologien zum Erzeugen derselben immer leistungsfähiger. Neben einer intuitiven Benutzerführung werden das Setzen von Bookmarks oder die Verwendung der Browserbuttons und des Browserverlaufs vorausgesetzt. Zur Bereitstellung dieser Funktionalitäten kann das in Google Web Toolkit (GWT) integrierte „Activities and Places Framework“ verwendet werden. Strukturiertheit und Skalierbarkeit spielen auch bei der Entwicklung des Codes der Webapplikation eine wichtige Rolle und sollen nicht nur Eigenschaften der Webseite für den Endbenutzer sein. Die Versuchung ist oft groß, die darstellende Schicht einer Applikation und die Businesslogik nicht strikt zu trennen. Zur Lösung dieses Problems kann für die Entwicklung von User Interfaces mit GWT das Model-View-Presenter-(MVP-)Software-Pattern eingesetzt werden.

Raffaela Brodt


Das Activities and Places Framework erlaubt das Management des Browserverlaufs und die damit verbundene Bedienung der Vor-, Zurück- und Refresh-Buttons, die jeder gängige Browser zur Verfügung stellt. Seit der Version 2.1. ist dieses Framework in GWT integriert [1]. Das Grundprinzip ist, dass jedem User Interface (UI) eine Activity und ein Place zugeordnet ist.

Die Activity wird aufgerufen, wenn zu einer neuen Maske navigiert wird. Sie implementiert die Methoden onCancel(), onStop() und start(AcceptsOneWidget panel, EventBus eventBus). In der start-Methode werden alle Daten geladen, die für die Darstellung notwendig sind. Am Ende der Methode wird die Darstellungskomponente gesetzt und ist dadurch sichtbar.

Ein Place stellt einen „Platz“ in der Applikation dar. Er ist über den ActivityMapper immer an eine Activity gebunden, und diese wird dadurch via URL erreichbar. Ein Place erweitert den gwt.app.place.Place und implementiert einen PlaceTokenizer. Für jede Seite der Applikation wird also ein eindeutiges Token als String definiert, das beim Vor- und Zurücknavigieren in dem Browserverlauf wiederhergestellt werden kann [1].

Das MVP Pattern allgemein

Das Model View Controller (MVC) Pattern, aus dem das MVP Pattern hervorgeht, ist die Grundlage für die Kapselung der darstellenden Komponente (View), der Businesslogik (Model) und einer steuernden Komponente (Controller/Presenter). Durch diese Aufteilung werden Codewiederholungen vermieden, die Testbarkeit und Wiederverwendbarkeit des Sourcecodes erhöht und damit die Fehleranfälligkeit und der Wartungsaufwand minimiert. Der Vorteil von MVP im Vergleich zu MVC ist, dass die Darstellung völlig vom Model entkoppelt wird, indem ein Presenter dazwischen geschaltet wird (Abb. 1).

Abb. 1: MVP Pattern

Für große Applikationen, die mit GWT umgesetzt werden, empfiehlt Google das MVP Pattern und nennt dafür zwei Hauptgründe: Einerseits wird durch die Entkoppelung ermöglicht, dass viele Entwickler zeitgleich an der gleichen Codebasis arbeiten können. Andererseits wird die Anzahl der benötigten Testfälle minimiert [2]. Wenn Businesslogik sowohl in der View als auch im Model abgebildet wird, erhöht sich der Testaufwand erheblich, vor allem, wenn die View viele Abhängigkeiten vom Model besitzt. Durch die Implementierung der Logik im Presenter konzentriert sich der Testaufwand auf diese Klassen, und das Mocken wird erheblich erleichtert.

Die View

In GWT kann die View aus einer Java-Klasse und einer XML-Datei bestehen. Letztere enthält ...

Entwickler Magazin
MVP Pattern und Activities and Places Framework

GWT für Anspruchsvolle

Die Anforderungen an komplexe User Interfaces in Webapplikationen werden höher und die Technologien zum Erzeugen derselben immer leistungsfähiger. Neben einer intuitiven Benutzerführung werden das Setzen von Bookmarks oder die Verwendung der Browserbuttons und des Browserverlaufs vorausgesetzt. Zur Bereitstellung dieser Funktionalitäten kann das in Google Web Toolkit (GWT) integrierte „Activities and Places Framework“ verwendet werden. Strukturiertheit und Skalierbarkeit spielen auch bei der Entwicklung des Codes der Webapplikation eine wichtige Rolle und sollen nicht nur Eigenschaften der Webseite für den Endbenutzer sein. Die Versuchung ist oft groß, die darstellende Schicht einer Applikation und die Businesslogik nicht strikt zu trennen. Zur Lösung dieses Problems kann für die Entwicklung von User Interfaces mit GWT das Model-View-Presenter-(MVP-)Software-Pattern eingesetzt werden.

Raffaela Brodt


Das Activities and Places Framework erlaubt das Management des Browserverlaufs und die damit verbundene Bedienung der Vor-, Zurück- und Refresh-Buttons, die jeder gängige Browser zur Verfügung stellt. Seit der Version 2.1. ist dieses Framework in GWT integriert [1]. Das Grundprinzip ist, dass jedem User Interface (UI) eine Activity und ein Place zugeordnet ist.

Die Activity wird aufgerufen, wenn zu einer neuen Maske navigiert wird. Sie implementiert die Methoden onCancel(), onStop() und start(AcceptsOneWidget panel, EventBus eventBus). In der start-Methode werden alle Daten geladen, die für die Darstellung notwendig sind. Am Ende der Methode wird die Darstellungskomponente gesetzt und ist dadurch sichtbar.

Ein Place stellt einen „Platz“ in der Applikation dar. Er ist über den ActivityMapper immer an eine Activity gebunden, und diese wird dadurch via URL erreichbar. Ein Place erweitert den gwt.app.place.Place und implementiert einen PlaceTokenizer. Für jede Seite der Applikation wird also ein eindeutiges Token als String definiert, das beim Vor- und Zurücknavigieren in dem Browserverlauf wiederhergestellt werden kann [1].

Das MVP Pattern allgemein

Das Model View Controller (MVC) Pattern, aus dem das MVP Pattern hervorgeht, ist die Grundlage für die Kapselung der darstellenden Komponente (View), der Businesslogik (Model) und einer steuernden Komponente (Controller/Presenter). Durch diese Aufteilung werden Codewiederholungen vermieden, die Testbarkeit und Wiederverwendbarkeit des Sourcecodes erhöht und damit die Fehleranfälligkeit und der Wartungsaufwand minimiert. Der Vorteil von MVP im Vergleich zu MVC ist, dass die Darstellung völlig vom Model entkoppelt wird, indem ein Presenter dazwischen geschaltet wird (Abb. 1).

Abb. 1: MVP Pattern

Für große Applikationen, die mit GWT umgesetzt werden, empfiehlt Google das MVP Pattern und nennt dafür zwei Hauptgründe: Einerseits wird durch die Entkoppelung ermöglicht, dass viele Entwickler zeitgleich an der gleichen Codebasis arbeiten können. Andererseits wird die Anzahl der benötigten Testfälle minimiert [2]. Wenn Businesslogik sowohl in der View als auch im Model abgebildet wird, erhöht sich der Testaufwand erheblich, vor allem, wenn die View viele Abhängigkeiten vom Model besitzt. Durch die Implementierung der Logik im Presenter konzentriert sich der Testaufwand auf diese Klassen, und das Mocken wird erheblich erleichtert.

Die View

In GWT kann die View aus einer Java-Klasse und einer XML-Datei bestehen. Letztere enthält ...

Neugierig geworden?


   
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang