MVVM模式矛盾 - 建筑与演示?

时间:2012-08-20 23:28:09

标签: wpf mvvm presentation-layer architectural-patterns

什么是表示层模式/表示模式?据我所知,MVVM是一种架构模式,但我看到许多人,文章,博客将其称为演示模式。我感到困惑。

似乎有点矛盾。如果它是一个架构模式,那么它应该处理我的所有表示层,业务逻辑层和数据访问层,对吧?我可以使用我的Entity Framework生成的数据模型作为模型。但如果它是一个Presentation模式,我猜它应该只处理Presentation,那么我不应该使用EF生成的数据模型作为模型,因为它将从表示层访问我的数据访问层。

任何人都能解释一下吗?

2 个答案:

答案 0 :(得分:0)

您的视图和视图模型通常属于架构的同一层。 MVVM的主要方面是交互b / w Views和View-models。模型可能/可能不被认为是在单独的层中。

如果您有一个与数据库,文件存储,服务等连接的复杂业务应用程序,通常该模型将成为后端的抽象表示。但在简单的情况下,如hello world图像查看器 - 究竟是什么模型?甚至可能没有。

大图POV,整个视图 - > VM - >模型堆栈看起来像一个单层。

答案 1 :(得分:0)

MVVM是架构还是表示模式取决于涉及大量工作的层。

MVVM是一种Presentation模式,如果模型可以通过一个层轻松构建并可供VM使用。在这种情况下,大部分工作将在View和ViewModel上进行。

MVVM是一种体系结构模式,如果应用程序大小很大并涉及许多层(分层体系结构),ViewModel和Data之间的任何内容(如域层,数据库访问层,Web服务层)属于模型。