我想设计DDD
之后的模型。域中有两个实体:Tank和Catalog。目录是一个弱势实体,其生活方式取决于其所有者:坦克(坦克很强,目录很弱)。我也希望观察德米特定律。所以我的最终设计如下:
public class Catalog
{
public int Id { get; private set; }
public DateTime PublishTime { get; private set; }
private Catalog()
{
}
private void SetPublishTime(DateTime dt)
{
PublishTime = dt;
}
public class Tank
{
public int Id { get; set; }
public int Quantity { get; set; }
private ICollection<Catalog> Catalogs { get; set; }
public Catalog AddCatalog()
{
Catalog cat = new Catalog();
cat.SetPublishTime(DateTime.Now);
Catalogs.Add(cat);
return cat;
}
}
}
因此,样本用法如下:
Catalog.Tank t = new Catalog.Tank();
Catalog cat = t.AddCatalog();
t.SetPublishTime(cat, DateTime.Now);
问题: 要仅通过Tank(强实体)限制对Catalog(弱实体)的访问,应该在Catalog类中定义Tank类!某种程度上是反向行动!
问题:这是设计模型的正确方法吗?有没有更好的方法来解决我提到的问题?