gpt4 book ai didi

design-patterns - MVVM 独特优势

转载 作者:行者123 更新时间:2023-12-01 09:07:15 24 4
gpt4 key购买 nike

stackoverflow 搜索将导致多个包含相似标题的帖子,但这是不同的问题。由于这不是一个讨论网站,我不得不问一个不同的问题。

我从使用 MVVM 中获得了哪些我无法从任何其他实现中获得的独特优势? MVC。 NTiers,或其他任何东西。我并不是真的在寻找使 MVVM 与众不同的识别功能。我正在寻找除了 MVVM 之外其他任何东西都无法完成的事情。我目前对它的了解让我想到,MVVM 是做同样事情的不同方式,它引入了比 nTiers 更复杂的事情。我不想认为引入这种复杂性是一件消极的事情。如果通过启用独特的好处来证明它是合理的,那么我想知道这一点。

一个深入的谷歌,只发现了 MVVM 的定义。它没有出现这些独特的好处。

最佳答案

我能想到的唯一好处是 MVVM 模式优于 MVP(它是一种变体)是,在 MVVM 中,您不需要像在MVP 实现。这是由 WPF 提供的工具实现的。 (最重要的 BindingExpressions)在 MVP 中,您将定义一个表示演示者如何与 View 交互的接口(interface)(IxxxxView 是一种传统的命名模式),当您创建演示者时,您将 View 接口(interface)传递给它(附加到 View 实例)。这也允许在普通演示者之上进行一些 View 变化。

在 MVVM 中,您没有明确定义该接口(interface)。您定义 ViewModel 并使用 Binding 将 ViewModel(逻辑) Hook 到 View(表示)。 View 中没有 ViewModel 的内在知识,因为绑定(bind)(如果它们是在 XAML 中完成的)在运行时(或有时在设计器中)被解析。理论上,一个 WPF 应用程序应该能够在没有 UI 的情况下完全被驱动。

您从 MVVM/MVP/MVC 获得的好处主要是表示和业务逻辑之间的关注点分离以及这允许什么。它允许特定技能的角色(阅读:实际的图形设计师)进行演示,而无需了解任何有关 C#/VB.NET 代码的知识。他们可以构建演示文稿,然后开发人员会出现并在之后进行连接。

此外,开发人员现在拥有允许通过单元测试自动测试代码的模式。因为应用程序可以(大部分)在没有 UI 的情况下被驱动,所以单元测试是一个很好的工具,可以让开发人员真正练习他们编写的所有代码。

不过,这并没有真正解决“N-Tier”和 MVVM 之间的比较,因为我不知道那是苹果对苹果的比较。可以说,MVVM WPF 应用程序是 N 层应用程序,在解决方案中有几个逻辑层。

最终,MVVM/MVP/MVC 都是非常相似的模式,具有相同的好处。但有一件事是,据我所知,MVVM 只能在 WPF/Silverlight 是首选的演示技术时使用。我想这是 MVVM 的独特优势。在 WPF/Silverlight 中,它对我们来说是特定的,也是最佳的模式。使用 MVVM 后,在 WPF 中使用任何其他模式都会感觉很笨拙。

关于design-patterns - MVVM 独特优势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5602685/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com