以下是一些示例代码,其中我们有一个方法可以回答“用户X可以查看产品Y吗?”的问题。
public namespace Domain
{
public class User
{
...
public bool CanWriteReview(Product product)
{
return this.IsApproved
&& !Kernel.Get<ReviewRepository>().UserHasReviewed(product)
&& !Kernel.Get<SellerAccountRepository>().UserHasSellerAccount(this);
}
}
}
我不喜欢在域POCO中使用此方法,因为它有太多依赖项无法注入,必须直接从内核中检索。你会把这种逻辑放在哪里?
我发现domain events pattern是一种有用的方法,可以从域中获取依赖于Domain状态更改的类似服务的逻辑。上述方法是否有类似的模式?