Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

A general question on model-view-presenter (C#), should the model know the presenter?

Tags:

c#

.net

mvp

I have a MVP (passive view) setup, and it is going quite well. I recently read Martin Fowlers description of this (http://martinfowler.com/eaaDev/PassiveScreen.html) and he writes "Another advantage that Passive View is a very explicit mechanism. There's very little reliance on Observer mechanisms or declarative mappings."

In my MVP I have my model completely oblivious of a presenter, and communication from the model to the presenter is handled by events. I initialize my MVP in the view by calling the presenter ctor e.g. new Presenter(this, new Model()) (where this refers to the view).

My question is, should I make the model aware of a presenter such that it can invoke presenter logic directly instead of using events?

like image 316
lejon Avatar asked Sep 28 '10 11:09

lejon


1 Answers

No, you shouldn't. If you did, your model would be tightly coupled with your presentation layer, making it useless outside of that context. Moreover, testing, debugging and maintaining your model layer would become more problematic.

like image 60
Kent Boogaart Avatar answered Oct 14 '22 04:10

Kent Boogaart