2

は、次のコードを考えてみましょう:例外をスローしたり、ドメインイベントを発生させたりしますか?

public class Article : AbstractEntity<Article> {  

    // ... 

    public void AppendFeedback(Feedback feedback) { 
     var quota = this.FeedbacksQuota ?? this.DefaultFeedbacksQuota;    
     if(this.Feedbacks.Count >= quota) { 
      throw new ApplicationException("message"); 
     } 
     this.Feedbacks.Add(feedback); 
    } 

    // ... 
} 

だから私は、クォータを超過しますときに私は、ユーザーに通知する方法を知りません。例外を投げることは私にとっては悪いようです。 domain eventsを使用するには適切な場所ですか? (例は、特にASP.NET MVC applicationの文脈で認められる)。

どこでメッセージを収集/処理する必要がありますか?

ありがとうございます!

答えて

1

フィードバック制限が不変(ビジネスルール)の場合、例外は正常です。

あなたはいつものようなメソッドを追加することができます。フィードバックはあなたが有意義/ユーザーフレンドリーなメッセージを返すことができるように追加する前に許可されているかどうかを確認するには

public bool CanAddFeedback 
{ 
    get { return this.Feedbacks.Count < quota; } 
} 

。フィードバックにドメインイベントを発生させる可能性が

あなたは、それが左クォータが含まれている追加など

+0

OK!あなたの両方のアドバイスをありがとう! – lexeme

関連する問題