Me atrevo a mandar un link sobre la propuesta de Carlos.
http://www.jpboodhoo.com/blog/ValidationInTheDomainLayerTakeOne.aspx Daniel Calvin El día 24/01/07, Carlos Peix <[EMAIL PROTECTED]> escribió:
Hola Sebastian, Planteo algunas preguntas retoricas: que significa validar una entidad? cuando una entidad es valida? siempre depende de la entidad misma saber si es valida? no puede ser que una entidad sea, con el mismo estado, valida para una cosa pero invalida para otra? si existe esta diferencia, como puede la entidad autovalidarse? Hay un principio bastante util (para mi) que dice que nunca una entidad deberia estar en un estado inconsistente o "no valido". Tomando en cuenta el ciclo de vida de la entidad, desde su nacimiento deberia ser valida, por ejemplo, tomando en su constructor todos los datos minimos necesarios. Luego, esa entidad podra tener una vida dentro de la aplicacion, pasar entre diferentes estados, etc. Lo importante es que no cambie de un estado a otro si no es valida en el nuevo estado. Esto me parecio demasiado perfecto para ser util en el trabajo de todos los dias, o puramente academico, ahora entiendo que es un principio valioso. Imaginate que un cliente, mientras no se le factura, no es necesario que tenga un limite de credito. Mientras no se active como "facturable" es valido. Ahora, para que se pueda facturar es necesario cambiarlo de estado (o de registro, o de lo que fuere). Esa transicion (cuyo codigo puede estar dentro de la clase o fuera) debe realizar las validaciones devolviendo una coleccion de reglas no satisfechas (BrokenRules o BrokenConstraints), si esta coleccion es vacia podemos asumir que el cambio fue realizado, de lo contrario no. De esta manera el codigo de validacion no queda en la capa de persistencia (donde no pertenece en mi opinion) sino en la capa de negocio. Creo, por otra parte, que no es necesario utilizar excepciones cuando la validacion se organiza de esta manera, puesto que no son excepciones lo que ocurre, mas bien son reglas no satisfechas. Carlos ------------------------------ *From:* puntonet@mug.org.ar [mailto:[EMAIL PROTECTED] *On Behalf Of *Sebastian Renzi *Sent:* Martes, 23 de Enero de 2007 03:10 p.m. *To:* puntonet@mug.org.ar *Subject:* !-> [puntonet] Validar entidad Hola lista, buenas tardes, quisiera conocer sus opiniones de cómo retornan o avisan que una entidad no esta validada. Supongamos que tengo el objeto Cliente, al momento de persistirlo verifico si esta validado, en el caso que no lo este, estoy tirando una exception, me gustaría saber como lo hacen, ya que siempre me dio un poco de cosa manejarme con exceptions. Salu2 Sebastian Renzi
-- Daniel A. Calvin Cooperator Team Member http://www.cooperator.com.ar Microsoft Certified Professional