7

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

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

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

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

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

我很困惑。设计还是架构模式?这个词是不是混淆了?

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

4

1 回答 1

7

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

例如,如何构建视图的方法很难摆脱,所以我称之为架构模式。Microsoft 将 ASP.NET WebForms 设计为与 WinForms 很相似。在项目进行到一半时,很难切换到更多的 MVVM 方法。即使选择 WebForms 作为您的技术堆栈,也会极大地影响您可以对应用程序执行的操作。

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

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

于 2013-03-15T15:22:40.353 回答