gpt4 book ai didi

design-patterns - MVP 与 MVVM - 为什么?

转载 作者:行者123 更新时间:2023-12-03 23:27:48 24 4
gpt4 key购买 nike

我在使用 WinForm 时使用的是 MVP。但是当我开始使用 WPF 或 Silverlight 时,我转向了 MVVM。

我唯一注意到的是,由于强大的绑定(bind),我们不需要在 MVVM 模式中与 View 和 ViewModel 之间的数据同步。

我的问题是:

1) 绑定(bind)(帮助我们不手动同步 View 和 ViewModel)是使用 MVVM 的唯一优势吗?

2) MVVM 与 MVP 相比还有其他优势吗?有什么区别?

3) 下面的代码是 MVVP 模式还是 MVVM 或两者兼而有之?

interface IView {

void ShowMessage(string message);

}

class View : IView {
public void ShowMessage(string message){
MessageBox.Show(this, message);
}
}

class ViewModel{

private IView view;

public ViewModel(IVew view){

this.view = view;

}

........

view.ShowMessage("This is a msg");

}

最佳答案

两者之间最重要的区别之一是,在 MVP 中,存在紧密耦合,即作为接口(interface)的 Presenter 持有对 View 的引用,而在 MVVM 中,viewmodel 不持有对 View 的引用。
第二个区别是 MVP 是 View 和演示者之间的一对一关系,而 MVVM 是一对多关系。这意味着,我们可以使用具有许多不同 View 的单个 View 模型,但在 MVP 中,Presenter 绑定(bind)到单个 View 。

关于design-patterns - MVP 与 MVVM - 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1685921/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com