considere el siguiente código:negocios código de la lógica de validación Olor
partial class OurBusinessObject {
partial void OnOurPropertyChanged() {
if(ValidateOurProperty(this.OurProperty) == false) {
this.OurProperty = OurBusinessObject.Default.OurProperty;
}
}
}
Es decir, cuando se cambia el valor de OurProperty
en OurBusinessObject
, si el valor no es válido, establece que es el valor por defecto. Este patrón me parece como código malicioso, pero otros aquí (en mi empleador) no están de acuerdo. ¿Cuáles son tus pensamientos?
Editado para agregar: Me han pedido que agregue una explicación de por qué esto está bien. La idea era que, en lugar de que los productores del objeto comercial validaran los datos, el objeto comercial podría validar sus propias propiedades y establecer valores predeterminados correctos en los casos en que fallara la validación. Además, se pensó que, si las reglas de validación cambian, los productores de objetos comerciales no tendrán que cambiar su lógica ya que el objeto comercial se encargará de validar y limpiar los datos.
Acepto en su mayor parte, pero algunas propiedades pueden ser predeterminadas de forma segura si se espera que los datos nocivos entren lentamente. Realmente no sabemos cuál es la situación aquí. –
Si las propiedades pueden predeterminarse de manera segura, ¿por qué solicitarlas en primer lugar? ¡Estás ignorando lo que el usuario está proporcionando de todos modos! –