为什么在大多数ASP.NET MVP实现中,Presenters附加到View事件而不是View调用Presenter方法?

时间:2011-01-19 06:51:14

标签: asp.net mvp

我注意到在Webforms MVP实现和大多数其他示例中,Presenter通常会将处理程序附加到View事件。为什么Views不能直接调用演示者中的方法?只是想知道,因为将一个处理程序附加到一个事件,为特殊参数定义EventArgs,检查事件在视图端是否为null的整个任务似乎比调用一个方法更加繁琐。

1 个答案:

答案 0 :(得分:2)

当然可以,我发现这是最好的中间地带。你所描述的是我认为称为Observing Presenter风格。这使您可以完全将View与Presenter分离,从而使视图不易受到演示者内部更改的影响。但它也引入了测试的复杂性,这就是使用MVP开始的原因。我根本不打扰这种风格。在非常大的项目中,我们使用Encapsulated Presenter样式,其中View引用了Presenter,通过IoC容器注入,并且只在Presenter上查看调用方法。易于理解,易于调试,易于测试。