1

目前,我有一个 Teststep.cs 业务对象和一个绑定到 system.web.MVC 命名空间并具有诸如 IsDirty 之类的附加属性的视图模型挂件。

在表示层中,我有 2 个视图(模板(写入/读取 + 更多功能)和测试计划(几乎只读)),它们显示了 TeststepViewModel 的不同属性。

我应该创建一个 TeststepViewModelBase 并创建另外 2 个 ViewModels TemplateTeststepVM 和 TestplanTeststepVM 吗?

这样做有什么好处?

4

1 回答 1

0

不,您不需要在 ViewModel 和 View 之间进行 1-1 映射。在两个 View 之间共享一个 ViewModel 是完全明智的,只要它有意义。

ViewModel 是视图使用的模型的一个版本。如果您当前拥有的 ViewModel 代表一个逻辑组件,那么在两个 View 之间共享它是有意义的。如果视图为同一个业务对象提供了不同的视角,那么您可能走在正确的轨道上。

然而,这并不意味着您应该默认为多个视图使用单个 ViewModel 。我曾使用一个巨大的 ViewModel(超过 1000 行)参与过项目,它位于十几个 View 后面。这不是一个好的模式并且难以维护。

于 2012-07-13T04:03:21.747 回答