相关疑难解决方法(0)

业务验证逻辑代码气味

请考虑以下代码:

partial class OurBusinessObject {
    partial void OnOurPropertyChanged() {
        if(ValidateOurProperty(this.OurProperty) == false) {
            this.OurProperty = OurBusinessObject.Default.OurProperty;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

也就是说,当OurPropertyin 的值OurBusinessObject改变时,如果该值无效,则将其设置为默认值.这种模式让我感觉像代码味道,但其他人(在我的雇主)不同意.你的想法是什么?

编辑补充:我被要求添加一个解释为什么这被认为是好的.我们的想法是,业务对象可以验证自己的属性,并在验证失败的情况下设置干净的默认值,而不是让业务对象的生产者验证数据.此外,有人认为,如果验证规则发生变化,业务对象生产者将不必更改其逻辑,因为业务对象将负责验证和清理数据.

.net c# entity-framework business-logic

10
推荐指数
1
解决办法
1275
查看次数

标签 统计

.net ×1

business-logic ×1

c# ×1

entity-framework ×1