简体   繁体   中英

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

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 eg 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?

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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM