就理论而言,Asp.net MVC 框架似乎可以更好地描述为 MVP 软件模式......为什么不呢?
因为在我看来,我将 Asp.net MVC 视为一个框架,它具有调用 Controller 操作的功能 View (正在运行的脚本)。看来意见才是大师。
最佳答案
有两个明显的区别(取自源代码):
被动 View :
View 尽可能愚蠢,几乎包含零逻辑。演示者是与 View 和模型对话的中间人。 View 和模型是完全相互屏蔽的。模型可能会引发事件,但演示者订阅这些事件以更新 View 。在被动 View 中,没有直接的数据绑定(bind),而是 View 公开演示器用来设置数据的 setter 属性。所有状态都在 Presenter 中管理,而不是在 View 中管理。
Pro:最大可测试表面; View 和模型完全分离
缺点:更多工作(例如所有 setter 属性),因为您自己进行所有数据绑定(bind)。
监督控制者:
演示者处理用户手势。 View 通过数据绑定(bind)直接绑定(bind)到模型。在这种情况下,演示者的工作是将模型传递给 View ,以便它可以绑定(bind)到它。 Presenter 还将包含手势逻辑,例如按下按钮、导航等。
优点:通过利用数据绑定(bind),可以减少代码量。
缺点:可测试的表面较少(由于数据绑定(bind)),并且 View 中的封装较少,因为它直接与模型对话。
关于asp.net-mvc - 为什么选择 Asp.net MVC 而不是 Asp.net MVP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10006478/