MVP Pattern

22/09/2008 - 21:39 von Marcel Beutner | Report spam
Hallo NG,

die letzten paar Tage habe ich mich ein wenig mit dem Model-View-Presenter
Pattern auseinander gesetzt, da ich es für mein nàchstes Projekt gerne
verwenden würde. Im Internet gibt es sehr viel verschiedene Auslegungen,
was Aufgabe der Schichten ist. Daher bin ich mir jetz ein wenig unsicher.
Gleich die erste Frage: Ist es richtig das MVP keine eigenstàndige
Architektur ist, sondern nur die Pràsentationsschicht einer MultiTier
Anwendung feiner aufteilt? In der Literatur gibt es Beispiele bei denen
die "BusinessLogic" im Presenter ist, einmal im Model und ein anders mal
wird eine separate BL implementiert?!

Angenommen ich habe eine Applikation die einen Banktransfer durchführt. Wo
genau sollen welche Funktionen abgehandelt werden? Ist die folgende
Aufteilung so korrekt?:

View:
-Implementiert den Presenter und stellt nur Steuerelemente zur Verfügung.
Ein Ereignis "X" wird an den Presenter weitergereicht.

Presenter:
-Kommuniziert mit dem Model und aktualisiert die View. Das Ereignis "X"
wird weiter an das Model gereicht.

Model:
-Enthàllt die eigentliche Implementierung für "X"

BL: ??

DA: Daten Zugriffsfunktionen


Mir ist nicht ganz klar, wo jetzt meine eigentliche Logic hin soll. Ist
durch den Einsatz eines Model die BL obsolet?

Vielen Dank für eine kurze Aufklàrung

gruss marcel
 

Lesen sie die antworten

#1 Werner Schmidt
23/09/2008 - 14:31 | Warnen spam
Hallo Marcel,

Marcel Beutner schrieb:
In der Literatur gibt es Beispiele bei denen die "BusinessLogic" im


Presenter
ist, einmal im Model und ein anders mal wird eine separate BL
implementiert?!



Die Logik gehört in das Model (höre gerade zum ersten Mal dass innerhalb
eines MVx-Patterns die Logik auch woanders liegen können soll - muss
aber auch gestehen, dass ich das MVx-Pattern nur aus der Theorie kenne).

Eine separat implementierte BL würde für mich immer noch als Model
durchgehen (wobei ich mich mit der Unterscheidung Logik/Geschàftslogik
schwer tue).


Marcel Beutner schrieb:
Angenommen ich habe eine Applikation die einen Banktransfer durchführt.
Wo genau sollen welche Funktionen abgehandelt werden? Ist die folgende
Aufteilung so korrekt?:

View:
-Implementiert den Presenter und stellt nur Steuerelemente zur
Verfügung. Ein Ereignis "X" wird an den Presenter weitergereicht.

Presenter:
-Kommuniziert mit dem Model und aktualisiert die View. Das Ereignis "X"
wird weiter an das Model gereicht.

Model:
-Enthàllt die eigentliche Implementierung für "X"



Vereinfachte Darstellung:

[PSEUDO-CODE]
View.Ereignis()
{
Presenter.Funktion();
}

Presenter.Funktion()
{
Model.Funktion();
}

Model.Funktion()
{
//
// Eigentliche Funktionalitàt
//
}
[/PSEUDO-CODE]


Vielleicht hilft dir das weiter:
http://www.msquaredweb.com/DesignPa...Sharp.zip,
dort findest du ein Beispiel für ein MVC-Entwurfsmuster (auch wenn ich
gestehen muss, dass mir die unter
http://de.wikipedia.org/wiki/Model_View_Presenter aufgeführte
Unterscheidung zwischen MVP und MVC in dem Beispiel nicht wirklich
ersichtlich wird).

Irgendwie scheinen Begriffe wie Logik/Geschàftslogik sowie
Model-View-Presenter/Model-View-Controller ziemlich nahe beisammen zu
liegen...


Gruß


Werner

Ähnliche fragen