我看到这些类型的模型在线有很多样本。
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; }
}
答案 0 :(得分:1)
好吧,我会说这取决于具体情况,但是这种情况下的产品将通过存储库从数据库中填充,因此很可能是某种类型的ORM,因此构造函数中不需要对新List进行初始化。产品null的含义表示该列表尚未加载。另一方面,假设您的对象必须初始化此集合。对于简单的对象,DDD表示构造函数对这些东西完全没问题,但是对于复杂的对象,将构造移动到工厂。