请考虑以下代码:
partial class OurBusinessObject { partial void OnOurPropertyChanged() { if(ValidateOurProperty(this.OurProperty) == false) { this.OurProperty = OurBusinessObject.Default.OurProperty; } } }
也就是说,当OurProperty
in 的值OurBusinessObject
改变时,如果该值无效,则将其设置为默认值.这种模式让我感觉像代码味道,但其他人(在我的雇主)不同意.你的想法是什么?
编辑补充:我被要求添加一个解释为什么这被认为是好的.我们的想法是,业务对象可以验证自己的属性,并在验证失败的情况下设置干净的默认值,而不是让业务对象的生产者验证数据.此外,有人认为,如果验证规则发生变化,业务对象生产者将不必更改其逻辑,因为业务对象将负责验证和清理数据.
这绝对是可怕的.祝你好好调试生产中的问题.它唯一可以导致的是覆盖错误,这些错误只会突然出现在其他地方,而它们来自哪里并不明显.