2010-12-08 35 views
0

下面是一些示例代碼,其中我們有一個方法可以回答問題「用戶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是一種非常有用的方法,它可以將服務類邏輯取決於域狀態更改,從域中取出。上面提到的方法是否有類似的模式?

回答