【问题标题】:In MVVM, who creates the views, view models, and models? And who connects them together?在 MVVM 中,谁创建视图、视图模型和模型?谁将它们连接在一起?
【发布时间】:2016-12-08 13:32:11
【问题描述】:

在 MVVM 中,

  1. 谁创建第一个和后续视图、视图模型和模型?

  2. 谁显示视图?

  3. 谁来决定哪些视图和哪些模型连接到哪个视图模型?

在我看来,总会有一些代码/XML/配置/等。 -- 一些“连接组织”,可以这么说 -- 不适合任何模型、视图模型或模型组件。

【问题讨论】:

  • MVVM 框架可以说是为了“连接点”。我会研究其中的一些 - 自己构建所有样板可能很耗时。
  • 1) 是两个问题。第一个视图是通过运行可执行文件构建的,随后由您的代码控制 2) 您的代码 3) 您的代码。为什么不坐下来编写一个简单的小型原型,看看这些部件如何匹配。
  • @你会说“你的代码”。问题是,我的代码的哪一部分。视图、视图模型还是模型?

标签: mvvm


【解决方案1】:

MVVM 是一种将 UI 与代码分离的模式。它不是仅使用这 3 种类型的类(视图、视图模型、模型)来构建整个应用程序。你仍然可以拥有工厂、引导程序、存储库等。

  1. 第一个视图的创建方式因框架而异。为了 Caliburn.Micro 中的示例第一个视图是在类中创建的 BootstrapperDisplayViewFor<MainViewModel>
  2. 通常有一个内置类负责查找 进入具有特定名称(视图)的文件夹,该文件夹提取 Views 和 将它们与ViewModels 匹配。
  3. 视图和模型按名称连接。你必须遵循一定的 命名约定:Class1View 连接到 Class1ViewModel。 模型通常通过构造函数传递。

请注意,我的知识主要基于 Caliburn.Micro 是如何做到的,但我怀疑它与其他框架所做的并没有太大区别。

【讨论】:

  • CM 是一个很好的例子,但默认情况下它非常约定俗成 - 如果其他 MVVM 框架更明确地说明它们匹配视图/视图模型的方式,我不会感到惊讶 - 更不用说你可以对许多视图使用相同的视图模型。我想说这将在很大程度上取决于框架——每个人做的事情都不同。
  • Caliburn.Micro 中,您甚至可以更改视图与视图模型的匹配方式,所以是的,您是对的,它在很大程度上取决于框架。很难对如此广泛的问题做出准确的回答。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-07
  • 1970-01-01
  • 2018-07-27
  • 1970-01-01
  • 2018-03-17
相关资源
最近更新 更多