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