次のコードを検討してください。
partial class OurBusinessObject {
partial void OnOurPropertyChanged() {
if(ValidateOurProperty(this.OurProperty) == false) {
this.OurProperty = OurBusinessObject.Default.OurProperty;
}
}
}
つまり、OurProperty
inの値をOurBusinessObject
変更したときに、値が有効でない場合は、デフォルト値に設定します。このパターンはコードの臭いとして私を襲いますが、ここにいる他の人(私の雇用主)は同意しません。あなたの考えは何ですか?
追加するために編集:なぜこれが大丈夫だと思われるのかについての説明を追加するように頼まれました。ビジネスオブジェクトのプロデューサーにデータを検証させるのではなく、ビジネスオブジェクトが自身のプロパティを検証し、検証が失敗した場合にクリーンなデフォルト値を設定できるという考え方でした。さらに、検証ルールが変更された場合、ビジネスオブジェクトがデータの検証とクリーニングを処理するため、ビジネスオブジェクトのプロデューサーはロジックを変更する必要がないと考えられていました。