Рассмотрят следующий код:Business Validation Logic Код пахнет
partial class OurBusinessObject {
partial void OnOurPropertyChanged() {
if(ValidateOurProperty(this.OurProperty) == false) {
this.OurProperty = OurBusinessObject.Default.OurProperty;
}
}
}
То есть, когда значение OurProperty
в OurBusinessObject
изменяется, если значение не является допустимым, установите его значение по умолчанию. Этот шаблон поражает меня как запах кода, но другие здесь (у моего работодателя) не согласны. Что ты думаешь?
Отредактировано для добавления: меня попросили добавить объяснение, почему это считается нормальным. Идея заключалась в том, что вместо того, чтобы производители бизнес-объекта проверяли данные, бизнес-объект мог проверять свои собственные свойства и устанавливать чистые значения по умолчанию в случаях, когда проверка не удалась. Кроме того, считалось, что при изменении правил валидации разработчикам бизнес-объектов не придется менять свою логику, поскольку бизнес-объект будет заниматься проверкой и очисткой данных.
Я согласен по большей части, но некоторые свойства могут безопасно по умолчанию, если иногда будут возникать плохие данные. Мы действительно не знаем, что здесь происходит. –
Если свойства могут безопасно использоваться по умолчанию, то зачем им предлагать их в первую очередь? Вы игнорируете то, что пользователь предоставляет в любом случае! –