【问题标题】:Should ViewModel in MVVM only have code for request to the helpers?MVVM 中的 ViewModel 是否应该只有向助手请求的代码?
【发布时间】:2017-11-13 15:42:03
【问题描述】:

我一直在阅读 Mark Seemann 的《依赖注入》一书,但我的想法又一次搞砸了。 DI 的重点是确保每个类只知道它处理的任务。那么,对于 ViewModel 来说,仅向将处理所有工作的其他类发出请求,而 ViewModel 仅用于将所有内容绑定到 View 是否明智?

【问题讨论】:

  • 如果没有具体的例子,这个问题要么过于宽泛,要么过于笼统。
  • Counterpoint:DI 的重点是确保每个单独的类都需要一堆必须编写并提供给构造函数的包装器。就像您当地的三明治店改进了他们的订购程序,使其更像是向 NIH 申请研究资助。
  • @TomasŽemgulys 更像是,不要用大锤击中要害。
  • @EdPlunkett 好吧,我相信我会通过尝试实现而不是仅仅阅读来更好地理解 DI,即使它有点不必要
  • @TomasŽemgulys a) 完全正确。 b) 并非所有事情都是一种策略。大锤有自己的位置。

标签: c# .net wpf mvvm


【解决方案1】:

ViewModel 的作用是使 Model 适应 View。

但是这个定义中缺少一些部分——你的业务逻辑。当然你可以把它放在你的 ViewModel 中,但是在大多数情况下遵循SOLID 原则,使用某种服务来完成工作是个好主意,而 DI 是这样做的正确方法。

虽然这种方法可能不适用于所有情况。

【讨论】:

  • 所以基本上VM包含了所有的商业模式。因此,如果我封装那个逻辑应该是完全没问题的?
  • 你的 ViewModel 应该依赖于为你的应用提供业务逻辑的接口,你应该使用 DI 容器来解决它们。 MVVM 模式其实更像是 View-ViewModel-BusinessLogic-Model。
猜你喜欢
  • 2011-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-20
  • 2017-11-06
  • 2012-11-25
  • 2014-11-17
相关资源
最近更新 更多