业务对象是否应包含对其他对象的引用(如在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; }
}
答案 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)
这取决于数据。有些数据应该存储为原始对象的副本,有些应该是参考。