2012-04-04 73 views
2

据理论,似乎Asp.net MVC框架可以更好地描述为软件模式MVP ...为什么不呢?为什么Asp.net MVC而不是Asp.net MVP

因为就我看来,我将Asp.net MVC看作一个具有调用控制器操作的功能视图(脚本运行)的框架。所以看起来好像是主人。

+0

我认为你是绝对正确的。 – 2012-04-04 07:16:38

+0

@SimonLinder:FYI。我发现一些更多的信息告诉**主要区别** ...在MVP中,视图是*经理*然后与主持人交谈,但在MVC中,控制器是*经理*,而视图仅仅是*农民*由他们的经理实例化。所以主要的区别是视图的作用。 – 2012-04-04 12:37:37

回答

2

有两个明显的差异(从源获得):

被动视图

观尽可能哑和包含几乎为零的逻辑。 Presenter是一个与视图和模型交谈的中间人。视图和模型完全相互隔离。模型可能引发事件,但Presenter订阅它们以更新视图。在Passive View中,没有直接的数据绑定,而是View暴露了Presenter用来设置数据的setter属性。所有状态都由演示者管理,而不是视图。

Pro:最大可测性曲面;清晰地分离视图和模型

Con:更多的工作(例如所有setter属性),因为您正在自己完成所有数据绑定。

监督控制器

演示者处理用户的手势。视图通过数据绑定直接绑定到模型。在这种情况下,演示者的工作是将模型传递给视图,以便它可以绑定到视图。 Presenter还将包含用于像按下按钮,导航等手势的逻辑。

Pro:通过利用数据绑定来减少代码量。

Con:由于数据绑定,可测试表面较少,View中的封装较少,因为它直接与Model对话。

看到这个问题:What are MVP and MVC and what is the difference?

相关问题