は、次のコードを考えてみましょ香り:ビジネスの検証ロジックコードが
partial class OurBusinessObject {
partial void OnOurPropertyChanged() {
if(ValidateOurProperty(this.OurProperty) == false) {
this.OurProperty = OurBusinessObject.Default.OurProperty;
}
}
}
値が有効でない場合OurBusinessObject
でOurProperty
の値は、変更されたとき、ある、デフォルト値に設定します。このパターンはコードの匂いとして私を襲うが、ここ(私の雇用主の)他の人は同意しない。あなたの考えは?
を編集しました。これが大丈夫と思われる理由を追加するように求められました。つまり、ビジネスオブジェクトのプロデューサにデータを検証させるのではなく、ビジネスオブジェクトが独自のプロパティを検証し、検証が失敗した場合にクリーンなデフォルト値を設定することができます。さらに、検証ルールが変更された場合、ビジネスオブジェクトがデータの検証およびクリーニングを行うため、ビジネスオブジェクトプロデューサはロジックを変更する必要がないと考えられていました。
ほとんどの場合、私は同意しますが、悪いデータが時々クリープすることが予想される場合、一部のプロパティはデフォルトで安全にデフォルトできます。状況はどういうものかわからない。 –
プロパティが安全にデフォルト設定されていれば、なぜ最初にそれらのプロパティを要求するのですか?あなたはとにかくユーザーが提供しているものを無視している! –