23.02.2017 Views

Java

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

218<br />

11. Anotaciones<br />

También permiten declarar precondiciones, poscondiciones e invariantes<br />

de métodos y clases. Esta práctica es conocida como diseño por<br />

contrato. Además de la especificación, existen varias librerías que, dadas<br />

esas anotaciones de una forma u otra, realizan estas validaciones.<br />

class Persona {<br />

@NotNull @Length(min=3)<br />

private String nombre;<br />

@Min(0) private int edad;<br />

…<br />

boolean esHermanoDe(@NotNull @Valid otraPersona)<br />

{<br />

…<br />

}<br />

}<br />

…<br />

// al usar esHermanoDe con null debería arrojar una excepción<br />

juan.esHermanoDe(null)<br />

En general las restricciones y validaciones deberían estar<br />

encapsuladas en los objetos correctamente modelados. Por ejemplo,<br />

el nombre no debería ser tan solo un String, sino un objeto nombre<br />

propiamente dicho y dentro de él debería contener las validaciones<br />

necesarias para que las instancias sean válidas.<br />

Oval<br />

Oval (http://oval.sourceforge.net) es un proyecto que está dedicado a la creación de anotaciones<br />

para la validación de nuestras clases y métodos. Define una amplia variedad de anotaciones de restricciones<br />

sobre los atributos, parámetros y resultados. Permite definir nuestros propios validadores y también<br />

la posibilidad de escribir código validador directamente en las anotaciones.<br />

www.redusers.com<br />

www.FreeLibros.me

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!