视图模型是否应该直接包含模型,如下所示?
public class ViewModel
{
public Car Car { get; set; } // Car model
public Driver Driver { get; set; } // Driver model
public Photo Photo { get; set; } // Photo model
public List<Skill> Skills { get; set; } // List of Skill model
}
或者视图模型应该包含另一个视图模型:
{
public CarViewModel CarViewModel { get; set; }
public DriverViewModel DriverViewModel { get; set; }
public PhotoViewModel PhotoViewModel { get; set; }
public List<SkillViewModel> Skills { get; set; }
}
最佳做法是什么?
这取决于您在做什么,但通常情况下,第二个选项是最佳实践,假设 Viewmodel 中的所有对象都以某种方式实际显示在 View 中。
还要考虑到您的 ViewModel 项目代表 UI 上的事物,而模型代表业务逻辑。
因此,您的 UI 工件(ViewModel 对象)不一定与一个域对象(业务逻辑对象)相关联。
因此,在您的示例中,“照片”或“技能”在这方面似乎不是一个合乎逻辑的对象。
它们作为 UI Artefacts 存在于要显示的 ViewModel 上,但在逻辑域中,它们更有可能是逻辑对象的属性,可能是驱动程序或其他东西。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句