WPF:MVP与MVVM

MVP VS MVVM有什么区别? 为什么我们使用MVP,即使我们有三个层次:业务,数据访问和演示? 是否有任何特定的理由将Presentation层划分为MVP?

MVP和MVVM都是MVC的衍生物。 MVC是一种将用户表示和交互与内部表示分开的模式。

这需要三层,因为将用户交互/呈现直接绑定到内部表示将导致两者弯曲以彼此一致。 在您的应用程序中,您将这些层描述为Presentation,Business层和Data Access层。 只有那些非常松散的描述,您可能会描述任何MVC衍生物或原始MVC模式本身。

每个衍生物之间的关键差异是每个层在其他层上所依赖的依赖关系,以及它们彼此之间的紧密程度。 本文有一些关于差异的细节,当然它不应该被认为是权威的:

http://nirajrules.wordpress.com/2009/07/18/mvc-vs-mvp-vs-mvvm/

“… MVVM对于支持双向绑定的平台很有吸引力。同时,与Presenter不同的是ViewModel(Presenter通常需要View的界面)。