23.02.2017 Views

Java

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Java</strong> 233<br />

Los métodos constructores ya nos dan la semántica de los<br />

argumentos y no importan los nombres de estos. Una ventaja<br />

adicional de este tipo de aproximación es que no nos interesa cómo se<br />

representa internamente el punto, solo cómo lo creamos.<br />

Lo importante de esta sección es que debemos restringir las<br />

modificaciones a los objetos lo más que podamos y de acuerdo a cómo<br />

se toman esas modificaciones en el dominio del problema. Evitar, en lo<br />

posible, los setters y las clases tontas que solo contienen datos. Finalmente<br />

tratar de darles semántica a los constructores o, si tenemos varias formas<br />

de creación para un mismo tipo de objeto, utilizar métodos estáticos.<br />

Inyección de dependencias<br />

e inversión de control<br />

En el capítulo anterior mencionamos algunos frameworks de<br />

inyección de dependencias. Veamos, ahora, con mayor detalle, de qué<br />

se trata este concepto y cómo se relaciona con otro, la inversión de<br />

control. La inversión de control trata de distribuir las<br />

responsabilidades de un sistema en varios objetos, de forma que cada<br />

uno tenga una responsabilidad clara, bien definida y con un único<br />

propósito. Este concepto está asociado generalmente a la inicialización<br />

de colaboradores (de ahí que se lo relacione solamente a la inyección<br />

de dependencias), pero aplica a todo tipo de responsabilidad. Por<br />

ejemplo, si tenemos un objeto con varios atributos y varios métodos, y<br />

solo una parte de esos métodos es lo único que actúa sobre una parte<br />

de los atributos. Claramente este objeto está teniendo dos<br />

Válido por naturaleza<br />

Supongamos que utilizamos un int para modelar algo que siempre debe ser positivo, debemos usarlo en<br />

todos lados donde un parámetro sea positivo, una y otra vez. En vez de eso, podemos crear un nuevo tipo<br />

que naturalmente represente a los números positivos. Así no ensuciaremos el código con validaciones<br />

repetitivas y además abstraeremos el nivel de nuestro programa.<br />

www.FreeLibros.me<br />

www.redusers.com

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

Saved successfully!

Ooh no, something went wrong!