MVP和MVC有什么区别?
当超越 RAD (拖放和配置)构建用户界面的方式时,许多工具鼓励您使用三种设计模式,分别称为 Model-View-Controller , Model-View-Presenter 和 Model-View-ViewModel 。 我的问题包括三个部分: 这些模式解决了哪些问题? 它们有何相似之处? 它们有何不同? #1楼 模型视图演示者 在 MVP中 ,Presenter包含视图的UI业务逻辑。 View委托的所有调用均直接传递给Presenter。 演示者也直接从视图中分离出来,并通过界面与之对话。 这是为了在单元测试中模拟View。 MVP的一个共同属性是必须有很多双向分配。 例如,当某人单击“保存”按钮时,事件处理程序将委派给演示者的“ OnSave”方法。 保存完成后,演示者将通过其界面回调视图,以便视图可以显示保存已完成。 MVP往往是在Web窗体中实现独立表示的非常自然的模式。 原因是View总是首先由ASP.NET运行时创建。 您可以 找到有关这两种变体的更多信息 。 两个主要变化 被动视图: 视图尽可能愚蠢,并且包含几乎为零的逻辑。 演示者是与视图和模型对话的中间人。 视图和模型完全相互屏蔽。 模型可以引发事件,但是演示者订阅了这些事件以更新视图。 在Passive View中,没有直接的数据绑定