3

次のコードについて考えてみます。

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)。

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

ありがとう!

4

1 に答える 1

2

フィードバッククォータが不変(ビジネスルール)の場合、例外は問題ありません。

次のようなメソッドはいつでも追加できます。

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

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

残りのクォータなどを含むフィードバックが追加されたときにドメインイベントを発生させることができます。

于 2012-05-03T13:18:02.557 に答える