对于视图模型,继承被认为是安全的

时间:2013-02-16 01:56:02

标签: c# asp.net asp.net-mvc asp.net-mvc-4 viewmodel

我有一些创建和编辑具有共同属性的视图模型。我在网上看到,对视图模型使用继承是邪恶的。所以,我想知道拥有这些类型的视图模型是否安全。

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未在应用程序中使用,它仅用于存储公共属性。

2 个答案:

答案 0 :(得分:2)

参数:

“最佳实践”理念越来越倾向于“胖模型”。因此,模型驱动的设计非常重要。因此,需要排列和抽象

反对的论点:

由于模型实际上是将数据传递给Views,因此简单性最佳。这符合“控制器主导的逻辑”思想。

<强>要点: 绝对不是邪恶的。

甚至不好。建议与否取决于您是否为“胖”复杂模型/“瘦”控制器或简单(更多指向非复杂)模型进行数据处理。

我亲自指导Simplicity for Models。但是我看到了足够多的控制器来欣赏另一方。

答案 1 :(得分:0)

俗话说&#34;赞成作文而非继承&#34;。在CustomerEdit上拥有CustomerVM属性比以这种方式使用继承更好。在您发布的简单案例中,我认为这不会太重要,但随着系统的发展,如果您习惯使用继承,随着模型的复杂性和层次结构的深度增加,事情就会变得丑陋。