gpt4 book ai didi

MVVM:ViewModel 是否会格式化从模型中获取的数据?

转载 作者:行者123 更新时间:2023-12-03 10:18:47 25 4
gpt4 key购买 nike

我对 MVVM 有点困惑。

我理解这个概念并且可以看到优势。我的问题是:ViewModel 是否直接从模型中传递数据。

例如,假设我有一个带有 findByName() 方法的“用户”模型。 ViewModel 会调用它以通过
View 的相关用户详细信息。

该模型可能会重新运行一组“用户”对象,每个对象都具有名称、电子邮件地址等属性,并且还可能具有方法。

我的问题是,ViewModel 应该将一组 User 对象返回给 View ,还是返回它的重组版本
仅包含 View 需要的内容?

据我了解,在这种情况下,“用户”对象是模型层的一部分,在 MVVM 中, View 应该只依赖于 View 模型。

我的问题是 ViewModel 中需要大量看似冗余的绑定(bind)逻辑,这些绑定(bind)逻辑将被创建以重构输出。

将一组用户对象直接传递给 View (通过 ViewModel)会简单得多。

最佳答案

当然,有一点冗余。但是,如果您通过呈现对象来实现 MVVM,您会得到

  • 格式化 View 的模型信息,而不用表示逻辑污染模型
  • 当有任何变化时通知 View
  • 使用 WPF 的验证(如果您使用 WPF)
  • 如果你想
  • 从VM 级别而不是GUI 运行验收测试
  • 将您的演示文稿从模型的任何更改中抽象出来。

  • 最后一个很重要。如今,大多数演示绑定(bind)都是动态的并且会默默地失败 - 网页、WPF 等等。这意味着如果有人决定重命名模型上的某些内容,它会突然在您的 GUI 中中断,而您将不知道。

    通过在您的模型和 View 之间放置一个虚拟机,您可以缓冲此类更改。

    如果你想继续和用户一起工作,我说去吧——它会帮助你快速获得关于你的 GUI 的反馈。但是,当这些 User 对象第一次没有完全满足 View 的需要时,或者您需要通知 View 发生更改,或者您发现自己污染了模型,或者绑定(bind)中断时,也许这是一个好时机移动到 MVVM。

    关于MVVM:ViewModel 是否会格式化从模型中获取的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3871315/

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