我最近在阅读有关 ViewModel 及其优势的文章。我能够理解为什么需要它,但是我的问题是如果我有两个用于同一个对象的类(即 Person 类),我不是让代码变得多余吗?由于您需要确保基类模型和视图模型具有相同数量的属性,这是否不会使未来的更改变得有点困难,对吗?例如,假设我有一个名为 Person 的表
- ID
- 姓名
- 颜色
我正在创建一个用于为 NHibernate 创建映射的 hbm。我有以下模型类
public class Person {
public int ID {get;set;}
public string Name {get;set;}
public string color {get;set;} }
如果我是正确的,视图模型类应该看起来像
public class PersonViewModel {
[DisplayName("Full Name")]
public string Name {get;set;}
[DisplayName("Favourite Color")]
public string color {get;set;}
}
首先,我有两个类引用数据库中的同一个对象。即使一个类用于 DB 目的而另一个用于 View 目的,我们仍然有两个类具有完全相同的元数据。其次,如果我在 db 中引入一个新字段,我需要在三个地方添加它,Base Model 类、View Model 类和 HBM 文件。
如果我错了,请纠正我,这怎么能称为代码优化或最佳实践。