代码之家  ›  专栏  ›  技术社区  ›  MarkKGreenway

哪一个是更好的多重属性或行为属性

  •  1
  • MarkKGreenway  · 技术社区  · 14 年前

    我有一组联系人信息,将在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 回复  |  直到 14 年前
        1
  •  1
  •   Pieter van Ginkel    14 年前

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

    在第一个例子中,域模型更具表现力;它自己说明了数据的含义。

    您需要填充这两个规则中的一个,这是一个业务规则,您不需要在实体的属性中表示它。

        2
  •  0
  •   neebz    14 年前

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

        3
  •  0
  •   Thomas Langston    14 年前

    第一个设置更好。它表达了田野更有效的作用。它会将UI逻辑的执行延迟到适当的层。

    还要注意,您的电子邮件可能是空的,也可能是空的。此外,您可能会更多地使用字段名,例如ContactInstructions,而不是解释(解释什么?).