考虑以下代码:
partial class OurBusinessObject {
partial void OnOurPropertyChanged() {
if(ValidateOurProperty(this.OurProperty) == false) {
this.OurProperty = OurBusinessObject.Default.OurProperty;
}
}
}
即当in的值OurProperty
发生OurBusinessObject
变化时,如果该值无效,则设置为默认值。这种模式让我觉得代码有异味,但这里的其他人(在我的雇主那里)不同意。你怎么认为?
编辑添加:我被要求添加解释为什么这被认为是好的。这个想法是,业务对象可以验证自己的属性,并在验证失败的情况下设置干净的默认值,而不是让业务对象的生产者验证数据。此外,人们认为,如果验证规则发生变化,业务对象生产者将不必更改其逻辑,因为业务对象将负责验证和清理数据。