业务对象应该包含对象还是引用?

时间:2009-07-03 23:10:02

标签: c# business-objects

业务对象是否应包含对其他对象的引用(如在id字段中引用另一个数据库记录),或者它是否应包含实际对象的实例。

例如:

public class Company
{
    public int Id { get; set; }
    public CompanyStatus Status { get; set; }
}

public class Company
{
    public int Id { get; set; }
    public int Status { get; set; }
}

4 个答案:

答案 0 :(得分:9)

根据我的理解,它应该包含对接口的引用,而不是具体的类。

public class Company
{
    public int Id { get; set; }
    public ICompanyStatus Status { get; set; }
}

假设您的示例中的CompanyStatus的具体实现是一个类而不是一个枚举。

答案 1 :(得分:4)

以OO方式创建业务层对象时,您应该直接使用对象。

在您的示例中,int Status是否指的是存储在某处的CompanyStatus对象的ID?在这种情况下,它真的感觉更像是数据层问题。通常最好避免将数据层与业务层混合。

答案 2 :(得分:0)

如果您正在谈论C#,那么聚合对象意味着您正在存储对它的引用。

答案 3 :(得分:0)

这取决于数据。有些数据应该存储为原始对象的副本,有些应该是参考。