2010-09-28 49 views
5

我有一个MVP(被动视图)设置,并且它进行得很好。 我最近阅读Martin Fowlers对此的描述(http://martinfowler.com/eaaDev/PassiveScreen.html),他写道:“Passive View是另一个优势,它是一个非常明确的机制。对Observer机制或声明性映射的依赖性很小。 “关于模型 - 视图 - 演示者(C#)的一般问题,模型是否应该知道演示者?

在我的MVP中,我的模型完全忽略了演示者,从模型到演示者的沟通由事件处理。 我通过调用演示者ctor来初始化视图中的MVP,新的Presenter(这个,新的Model())(这里指的是视图)。

我的问题是,我应该让模型意识到演示者可以直接调用演示者逻辑,而不是使用事件吗?

回答

6

不,你不应该。如果你这样做了,你的模型将与你的表示层紧密结合,使之在这种情况之外无用。而且,测试,调试和维护模型层将变得更加成问题。

+0

那么马丁福勒甚至会想到,被动观点对观察机制的依赖性很小?也许他的意思是直接将观点与模型联系起来的机制(通过事件等)? – lejon 2010-09-28 12:22:02

+0

因为主持人指定被动视图(而主动视图需要较少的手持,如果你喜欢)。换句话说,被动观点并不是观察主持人,但主持人正在观察模型(并相应地对观点进行口授)。 – 2010-09-28 12:44:26

相关问题