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

Responder a