1
假设我有这3类下面:聚合根域逻辑
public class User
{
public int UserId { get; set; }
public ICollection<Location> { get; set; }
}
public class Location
{
public int LocationId { get; set; }
public int UserId { get; set; }
public ICollection<Sale> Sales { get; set; }
}
public class Sale
{
public int SaleId { get; set; }
public int LocationId { get; set; }
public decimal Cash { get; set; }
}
我有一个页面,我会显示总现金对谁在登录的用户的所有位置上的要求我想到我将GetTotalCash()方法放在Locations类中,并通过LINQ实现总结,但问题是我将通过User类访问Locations对象,我将无法调用由于Location属性是User类上的ICollection,因此使用summation方法。我应该把逻辑放在用户类上吗?但是这并不合理,因为它不是用户对象的行为,或者它不是?
顺便说一句,我使用的是EF 4.1代码第一次和MVC 3
感谢一大堆!
“那么reprehensibilites的每个信息专家级分配,并从聚合根授权”。什么你是这个意思吗? – gnaungayan
Als o,它似乎GetCashForLocation应该属于一个存储库? – gnaungayan
信息专家是GRASP模式之一http://en.wikipedia.org/wiki/GRASP_(object-oriented_design) 这些模式描述您应该在哪里设计方法以及如何分配职责。 –