MVVM模式是架构还是设计模式?

时间:2013-03-15 14:27:35

标签: mvvm architecture design-patterns

我已经对这个主题做了一些研究,我已经在很少的应用程序中使用了MVVM模式。

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

在大多数情况下,MVVM模式称为设计模式。无论如何,我个人会投票支持架构,因为对我而言,它清楚地定义了应用程序的体系结构(例如,三层,视图,ViewModel,模型以及它们如何相互交互)

这个SO Question & Answer是关于架构和设计模式之间的区别。在答案中,据说MVC是一种架构模式。几乎每个MVVM的解释都包含与MVC的比较。 MVVM因此也是一种架构模式吗?

这个msdn article(非常好)将MVVM模式称为设计模式,由真正了解其差异的人编写。

我很困惑。设计或建筑模式?这个词刚刚混淆了吗?

编辑:我需要知道我的学士论文

1 个答案:

答案 0 :(得分:5)

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

例如,如何构建视图的方法很难摆脱,所以我称之为架构模式。微软设计的ASP.NET WebForms很像WinForms。在项目中途很难切换到更多的MVVM方法。即使选择WebForms作为您的技术堆栈,也会严重影响您对应用程序的处理能力。

我认为设计模式是实现的变体 - 它们可以在不影响应用程序其余部分的情况下使用。您通常会重构模式,期望代码会发生变化。至关重要的是,设计模式旨在帮助促进未来的变革。

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