【发布时间】:2016-02-02 23:40:37
【问题描述】:
所以,答案应该很简单:正如 Mark Seemann 所写的here:
组合根是应用程序中一个(最好是)唯一的位置,其中模块组合在一起。 ( ... ) 在 WPF 应用程序中,它是 Application.OnStartup 方法
我不确定OnStartup 方法。假设我们有一个由这些具有依赖项的项目组成的应用程序:
域 应用程序服务 WPF客户端(ViewModels PCL
MVVM 模式说业务逻辑应该在 ViewModel 中进行。 (编辑:啊,我用错了词:/我的意思是:当你在类 Game 中有业务逻辑(在域中)时,如果移动完成游戏,它有方法 Move 返回 true - 你你的视图中不需要游戏。你需要一个命令 - 视图模型中的移动命令和游戏。视图应该只知道那个命令)。 View 应该只知道必须从哪个 ViewModel 执行的命令。所以基本上,View 应该只知道 ViewModel。关于域的知识在 View 中是无用的。
所以我的问题是:我应该采用哪种 MVVM 方法?
- 我想保持最佳实践并在组合根目录中创建每个对象
- 我想让我的业务对象在视图模型中,而不是在视图中
ViewModel-first(或 MVMC)是唯一可行的方法吗?
【问题讨论】: