在域模型中实例化一个集合被认为是一种好的做法吗?

时间:2011-07-05 16:11:05

标签: domain-driven-design

我看到这些类型的模型在线有很多样本。

public class User
{
    public long Id { get; set; }
    public string Name{ get; set; }
    public virtual ICollection<Product> Products { get; set; }
}

在构造函数中实例化一个集合(如下面的代码)是否被认为是一种好习惯?如果是这样的原因是什么?模型中的对象怎么样?

public class User
{
    public User()
    {
        Products = new List<Product>();
    }
    public long Id { get; set; }
    public string Name{ get; set; }
    public virtual ICollection<Product> Products { get; set; }
}

1 个答案:

答案 0 :(得分:1)

好吧,我会说这取决于具体情况,但是这种情况下的产品将通过存储库从数据库中填充,因此很可能是某种类型的ORM,因此构造函数中不需要对新List进行初始化。产品null的含义表示该列表尚未加载。另一方面,假设您的对象必须初始化此集合。对于简单的对象,DDD表示构造函数对这些东西完全没问题,但是对于复杂的对象,将构造移动到工厂。

相关问题