Presenter holt Daten aus View ODER View gibt Daten via Events an Presenter?
-
Hallo,
Haltet Ihr die Methode 1 oder 2 in der Presenter Klasse für besser?
AddDepartment is ein Event in der View und ruft in dem Presenter die Methode View_AddDepartment auf.
View Klasse:
private void addDepartmentButton_Click_1(object sender, EventArgs e) { if (AddDepartment != null) AddDepartment(departmentTextBox.Text); }
public String DepartmentName() { return departmentTextBox.Text; }
Presenter Klasse:
1.)
public void View_AddDepartment(String departmentName) { DEPARTMENT department = new DEPARTMENT; department.department_name = departmentName; }
oder
2.)
private void View_AddDepartment() { DEPARTMENT department = new DEPARTMENT; department.department_name = view.DepartmentName();
-
ist das Problem, dass meine Frage unverständlich ist?
-
Ob du den geänderten Wert in so einem Event mitgibst oder nicht sollte IMO ziemlich egal sein. Ich würde ihn nicht mitgeben, ganz einfach weil es nicht nötig ist (den "getter" gibts ja sowieso), und es einfacher ist.
Die interessantere Frage ist wohl, ob du für jede Eigenschaft welche sich ändern kann einen eigenen Event machen willst, oder nur einen einzigen "DataChanged" Event. Der Vorteil von mehreren Events ist natürlich dass man nicht immer alle Werte neu abfragen/zeichnen muss, sondern nur das was sich wirklich geändert hat.
-
Ob du den geänderten Wert in so einem Event mitgibst oder nicht sollte IMO ziemlich egal sein. Ich würde ihn nicht mitgeben, ganz einfach weil es nicht nötig ist (den "getter" gibts ja sowieso), und es einfacher ist.
ja richtig, ich dachte mir auch alle EventHandler ohne Parameter und void zu machen und die Daten hole ich mir dann über die view.xxxMethode aufgerufen in der Presenter Klasse, wobei ich nochmals extra betonen will, dass die VIEW nur Daten darstellt, sollte sie auch public methoden zur Verfügung stellen? wie
public DEPARTMENT DepartmentName() ?
Die Frage ist in Bezug auf richtige MVP Architektur: gibt die View die Daten via events an controller oder holt sich controller die View daten mit public methoden der View?
Die interessantere Frage ist wohl, ob du für jede Eigenschaft welche sich ändern kann einen eigenen Event machen willst, oder nur einen einzigen "DataChanged" Event. Der Vorteil von mehreren Events ist natürlich dass man nicht immer alle Werte neu abfragen/zeichnen muss, sondern nur das was sich wirklich geändert hat.
neu abfragen,zeichnen? Das blicke ich net ganz, kannst du das irgendwie erläutern bitte?
-
Also ich hatte keine Ahnung dass du das MVP Pattern meinst, ich kannte das noch nichtmal.
Und... bei MVP gibt's keinen Controller, den gibt's nur bei MVC.
-
hustbaer schrieb:
Also ich hatte keine Ahnung dass du das MVP Pattern meinst, ich kannte das noch nichtmal.
Und... bei MVP gibt's keinen Controller, den gibt's nur bei MVC.du kennst echt MVP nicht? sorry ich verwechsel Controller immer mit Presenter alte Java Gewohnheit...
-
Nö, ich kannte MVP nicht
Ich programmiere kaum User-Interfaces, und MVP kann man wohl nur bei User-Interfaces brauchen.BTW: kennst du ne gute Beschreibung dieses Patterns? Den Wikipedia-Artikel finde ich etwas verwirrend...
-
hustbaer schrieb:
Nö, ich kannte MVP nicht
Ich programmiere kaum User-Interfaces, und MVP kann man wohl nur bei User-Interfaces brauchen.BTW: kennst du ne gute Beschreibung dieses Patterns? Den Wikipedia-Artikel finde ich etwas verwirrend...
leider nicht vllt. das? wo gut ist das auch nicht, denn delegates/events werden gar nicht erwähnt...
http://www.microsoft.com/germany/msdn/solve/codeclips/library.aspx?id=msdn_de_23147
ich frage mich immer noch, ob ich alle daten der view aus dem presenter abfrage mit view.methode oder die daten den events mitgebe...