【问题标题】:Is the MVVM Pattern an Architectural or an Design pattern?MVVM 模式是架构模式还是设计模式?
【发布时间】:2013-03-04 07:34:50
【问题描述】:

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

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

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

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

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

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

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

【问题讨论】:

  • 架构模式也是设计模式。
  • @fab:这是一个有趣的观点。以前没听说过
  • 完全没有关系,fab 是对的。任何其他关于设计模式的理论推测都是邪恶的:只有它们的应用才是重要的。
  • 我的学士论文需要知道这一点。但是我同意你的看法

标签: mvvm architecture design-patterns


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-24
    • 1970-01-01
    • 2016-08-25
    • 1970-01-01
    • 1970-01-01
    • 2010-09-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多