【发布时间】:2016-01-23 00:47:06
【问题描述】:
我的问题是关于以下情况。有一个艺术家实体
` public class Artist : Entity
{
public Contact artistContact { get; private set; }
internal Artist() { }
public Artist(Guid _artistId, Contact _artistContact): base(_artistId)
{
artistContact = new Contact(_artistContact);
}
public Artist(Contact _artistContact) : base()
{
artistContact = new Contact(_artistContact);
}
public void MakeArt(){} // methods and so on
}`
这个艺术家实体有一个值对象联系人,其中包含他的姓名、电子邮件等。
`public class Contact : ValueObject<Contact>
{
readonly string name;
readonly string email;
public string Name { get { return name; } }
public string Email { get { return email; } }
public Contact(string _name, string _email)
{
name = _name;
email = _email;
}
}`
所以我的问题是:可以吗
- 创建值对象联系人的 DTO
- 将 DTO 映射到工厂提供的联系人(ValueObjects 的工厂)
- 最后调用 ArtistFactory.Create(Contact)
工厂使用 Activator.CreateInstance(),因此使用构造函数(构造函数的参数)创建对象是通过 Activator 完成的。
我正在尝试确保无法在没有联系人的情况下创建 Artist 实体,但不确定这是处理这种情况的正确方法。欢迎就如何处理此问题提出任何建议。
【问题讨论】:
标签: c# .net domain-driven-design