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

9

我已经就这个话题进行了一些研究,并且在一些应用程序中已经使用了MVVM模式。

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

在大多数情况下,MVVM模式被称为设计模式。然而,就我个人而言,我更倾向于将其视为架构模式,因为对我来说,它清晰地定义了应用程序的架构(例如三层,视图、视图模型、模型以及它们彼此之间的交互方式)。

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

这篇非常好的msdn文章称MVVM模式为设计模式,作者应该真的知道区别。

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

编辑:我需要知道这个问题来写我的学士论文。


1
架构模式也是设计模式。 - Fabian Schmengler
@fab:那是一个有趣的观点。以前从未听说过。 - Joel
2
完全没有关系,fab是正确的。关于设计模式的任何其他理论推测都是邪恶的:只有它们的应用才是重要的。 - mikalai
我需要了解这个内容,因为这是我的学士论文所需。但是,我同意你的观点。 - Joel
3个回答

7
我倾向于将架构模式视为具有长久影响的“决策”。它们构成了应用程序的骨架,因此难以摆脱。例如,如何构建视图的方法非常难以避免,因此我称其为架构模式。Microsoft 设计 ASP.NET WebForms 与 WinForms 非常相似,很难在项目中途转换到更 MVVM 的方法。即使选择 WebForms 作为技术堆栈也会对应用程序的功能产生重大影响。
我认为设计模式是实现的变体 - 它们可以在不影响应用程序的情况下使用。通常是重构为模式,并期望代码发生变化。总之,设计模式旨在帮助促进未来的变化。
显然两者之间存在模糊的界限。考虑存储库模式(通常被认为是一种架构模式)。它实际上是您数据层的外观(或代理)。在这里,你指出了一种经常使用的设计模式 - 将其提升为架构模式 - 因为它影响了你如何构建系统。现在你有一个规则:每当我访问数据库时,我会做这个、这个和这个。

0

架构模式比设计模式更高级。 架构模式是关于大规模组件、系统的全局属性和机制的高级策略。

或者更简单地说,架构模式在更高层次上定义了系统中涉及的组件,它们如何组装和组织以及它们如何相互通信。

设计模式通常与代码级别的共性相关联,或者可以说它是在较低层次上解释软件/组件如何构建的。

整体而言:

架构模式 - 软件系统的基本结构组织 **(处理关注点分离)

设计模式 - 处理软件/软件组件构建的实现级别细节


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接