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