我有一些创建和编辑具有共同属性的视图模型。我在网上看到,对视图模型使用继承是邪恶的。所以,我想知道拥有这些类型的视图模型是否安全。
public class CustomerVM
{
public int CustomerId {get;set;}
public string Name { get; set;}
}
public class CustomerCreateVM : CustomerVM
{
public dictionary<string,string> ModelCustomers { get; set;}
}
public class CustomerEditVM : CustomerVM
{
public List<Orders> OrdersList {get;set;}
}
CustomerVM未在应用程序中使用,它仅用于存储公共属性。
答案 0 :(得分:2)
参数:
“最佳实践”理念越来越倾向于“胖模型”。因此,模型驱动的设计非常重要。因此,需要排列和抽象
反对的论点:
由于模型实际上是将数据传递给Views,因此简单性最佳。这符合“控制器主导的逻辑”思想。
<强>要点:强> 绝对不是邪恶的。
甚至不好。建议与否取决于您是否为“胖”复杂模型/“瘦”控制器或简单(更多指向非复杂)模型进行数据处理。
我亲自指导Simplicity for Models。但是我看到了足够多的控制器来欣赏另一方。
答案 1 :(得分:0)
俗话说&#34;赞成作文而非继承&#34;。在CustomerEdit上拥有CustomerVM属性比以这种方式使用继承更好。在您发布的简单案例中,我认为这不会太重要,但随着系统的发展,如果您习惯使用继承,随着模型的复杂性和层次结构的深度增加,事情就会变得丑陋。