11 de febrero de 2014
FluentInterface
El termino FluentIterface es creado por Eric Evans y Martin Fowler, con el cual se crea un estilo de codigo mas fluido.
La intencion es que cuando se tenga que agregar multiples propiedades (no solo propiedades, tambien es aplicable a operaciones) a un objecto, este se haga de manera mas fluida.
Ejemplo:
private void fluentInterface(Cliente cliente){
cliente.nuevaOrden()
.agregarItem(1, 20.3, "Peliculas Accion")
.agregarItem(2, 10.4, "Pelicula Infantil")
.procesar();
}
private void tradicional(Cliente cliente){
Orden orden = new Orden();
Item item1 = new Item(1, 20.3, "Peliculas Accion");
orden.agregarItem(item1);
Item item2 = new Item(2, 10.4, "Pelicula Infantil");
orden.agregarItem(item2);
cliente.agregarOrden(orden);
orden.procesar();
}
El ejemplo es basico, pero se da entender que significa FluentInterface, lo que se quiere hacer con esto es que el codigo sea facil de leer y entender. Y que todo se vea como una unidad.
Para usar FluentInterface es bueno empezar por el encadenmiento de metodos (Method Chaining) , es el punto de partida para crear buenas Interfaces Fluidas.
Ejemplo de encadenamiento de metodos:
public class Observacion {
private String autor;
private Date fecha;
private String comentario;
public String getAutor() {
return autor;
}
public Observacion setAutor(String autor) {
this.autor = autor;
return this;
}
public Date getFecha() {
return fecha;
}
public Observacion setFecha(Date fecha) {
this.fecha = fecha;
return this;
}
public String getComentario() {
return comentario;
}
public Observacion setComentario(String comentario) {
this.comentario = comentario;
return this;
}
}
Modo de Uso:
***
Observacion observacion = new Observacion();
observacion.setAutor("Andrexweb")
.setFecha(new Date())
.setComentario("FluentInterface");
***
Bibliografia:
Martin Fowler - FluentInterface
Wikipedia en Ingles
Wikipedia en Español
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario