这是更好的多个属性或行为属性

时间:2010-11-11 19:07:48

标签: c# asp.net-mvc

我有一组联系人信息,我将在ASP.NET MVC页面中显示

他们将有一个电子邮件地址或联系信息

我应该有这个设置吗

public class Contact
{
    public int ID { get; set; }
    public string Name { get; set; }
    public string Email { get; set; }
    public string Explanation { get; set; }

}

当解释为空时显示电子邮件地址

public class Contact
{
    public int ID { get; set; }
    public string Name { get; set; }
    public string DisplayInfo { get; set; }
    public  int DisplayInfoType { get; set; }
}

显示信息类型决定了我将如何显示信息。

3 个答案:

答案 0 :(得分:1)

第一种方法:它更具表现力!

在第一个例子中,域模型更具表现力;它说明数据意味着什么。

您需要填写两个中的一个是业务规则,您无需在实体的属性中表达。

答案 1 :(得分:0)

DisplayInfo或者就此而言,任何类似的显示逻辑都应该包含在视图中。业务逻辑不负责必须在视图上向用户显示域的哪个部分。这应该在视图级别处理。

答案 2 :(得分:0)

第一个设置更好。它表达了这些领域更有效的方式。它将UI逻辑的执行延迟到适当的层。

另请注意,您的电子邮件可能为空,也可能为空。另外,您可以从诸如ContactInstructions之类的字段名称中获得更多用途,而不是解释(解释什么?)。