Fluent Interfaces

¿No es extraño que los setters no devuelvan nada? En estos tiempos que corren me parece que nos estamos perdiendo algo, estamos desperdiciando algo tan valioso como el retorno de un metodo. Por lo menos así lo cree Eric Evans y Martin Fowler quienes nos proponen algo llamado Fluent Interfaces.

Si creamos un objeto de clase Perro lo mas sensato es inicializar su estado de alguna forma, podemos inicializarlo mediante el constructor o bien con los setters de sus propiedades.

Perro perro = new Perro();
perro.setNombre("Otto");
perro.setRaza("BassetHound");
perro.setFechaDeNacimiento("20/07/2003");

Fluent Interfaces nos propone esto:

perro.setNombre("Otto").setRaza("BassetHound").setFechaDeNacimiento("20/07/2003");

En un contexto cargado con muchos objetos del mismo tipo la sentencia anterior se vuelve más clara que sus predecesoras y con algo tan trivial como hacer que los setters en lugar de devolver void devuelvan una referencia al objeto actual.

public Perro setNombre(String nombre) {
    this.nombre = nombre;
    return this;
} 

public Perro setRaza(String raza) {
    this.raza = raza;
    return this;
}
 //and so on...

No hay comentarios »

RSS feed de los comentarios de este post. TrackBack URI

Comentar

Captcha
Enter the letters you see above.

Entradas y comentarios feeds. 19 queries. 0.258 seconds.

57429 pages viewed, 105 today
27372 visits, 27 today
FireStats icon Powered by FireStats