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