3
我注意到,在Webforms MVP实现和大多数其他示例中,Presenter通常将处理程序附加到View事件。为什么Views不能直接调用演示者中的方法?只是想知道,由于将处理程序附加到事件的全部任务中,为特殊参数定义EventArgs,检查视图方的事件是否为空似乎比调用方法更繁琐。为什么演示者在大多数ASP.NET MVP实现中附加View事件而不是View调用Presenter方法?
我注意到,在Webforms MVP实现和大多数其他示例中,Presenter通常将处理程序附加到View事件。为什么Views不能直接调用演示者中的方法?只是想知道,由于将处理程序附加到事件的全部任务中,为特殊参数定义EventArgs,检查视图方的事件是否为空似乎比调用方法更繁琐。为什么演示者在大多数ASP.NET MVP实现中附加View事件而不是View调用Presenter方法?
当然他们可以,我发现这是最好的中间立场。你所描述的是我相信被称为Observing Presenter风格。这使您可以将演示者与视图完全分离,从而使演示者不易受到演示者内部变化的影响。但它也在测试中引入了复杂性,这就是使用MVP开始的原因。我根本不会打扰这种风格。在非常大的项目中,我们使用Encapsulated Presenter样式,其中View有一个对Presenter的引用,通过IoC容器注入,并只查看Presenter上的方法。易于理解,易于调试,易于测试。
你能否回答http://stackoverflow.com/questions/8851933/event-bubbling-and-mvp-asp-net? – Lijo 2012-01-16 06:13:14