MVVM模式是建筑模式还是设计模式?

Joe*_*oel 5 architecture design-patterns mvvm

我已经对该主题进行了一些研究,并且已经在少数应用程序中使用了MVVM模式。

我问这个问题是因为有时MVVM被称为设计,有时被称为架构模式。

在大多数情况下,MVVM模式称为设计模式。但是我个人会投票赞成体系结构,因为对我而言,它明确定义了应用程序的体系结构(例如,三层,View,ViewModel,Model以及它们之间的交互方式)

这样的SO问答是关于建筑和设计模式之间的区别。在回答中,据说MVC是一种架构模式。几乎所有关于MVVM的解释都包含与MVC的比较。MVVM因此也是一种架构模式吗?

这个msdn文章(顺便说一句非常好)将MVVM Pattern称为设计模式,由真正应该知道其区别的人编写。

我糊涂了。设计还是建筑图案?这个词混在一起了吗?

编辑:我的学士学位论文需要知道这一点

Tra*_*rks 5

我倾向于将建筑模式视为具有持久影响的“决定”。它们构成了应用程序的骨架,因此很难摆脱它们。

例如,很难建立一种用于构建视图的方法,因此我将其称为架构模式。微软将ASP.NET WebForms设计为与WinForms一样工作。在项目进行中很难切换到更多的MVVM方法。甚至选择WebForms作为您的技术堆栈,都极大地影响了您可以对应用程序执行的操作。

我认为设计模式是实现的变体-可以使用它们而不影响应用程序的其余部分。通常,您期望代码会更改,从而重构为模式。明确地说,设计模式旨在帮助促进未来的变化。

显然,两者之间存在一条模糊的界线。考虑存储库模式(通常认为是架构模式)。它实际上是您的数据层的基础(或代理)。在这里,您指出了设计模式的重复使用-将其提升为架构模式-因为它会影响您设计系统的方式。您现在有了一条规则:每当我访问数据库时,我都会这样做。