style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

Builder

Hola,alguien me podría explicar como funciona el builder para crear objetos? por que lo estoy viendo en la escuela y no entendí como funcionaba.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Básicamente: 1. Tienes una

Básicamente:

1. Tienes una clase a la que le pones muchos atributos y los va guardando
2. Cuando tengas los necesarios llamas a un método que construye el objeto deseado
3. Listo

// contruye "Algo"
class AlgoBuilder {
    // primero se declaran atributos
    private String nombreDeAlgo;
    private int numeroDeAlgo;

   // luego métodos para "colocar" ( settear ) esos atributos
    public AlgoBuilder  nombre( String elNombre ) {
       this.nombreDeAlgo;
       return this;
     }
    public AlgoBulder numero( int elNumero ) {
        this.numeroDeAlgo = elNumero;
        return this;
     }

    // Y finalmente cuando se tiene todo listo se puede construir la cosa ( Algo )
    public Algo datoConstruido() {
        return new Algo( nombreDeAlgo, numeroDeAlgo );
     }
}

Esa es la declaración del builder y se usa así. Supongamos que tenemos un formulario o un pedazo de software donde vamos recopilando información poco a poco. Como aún no queremos tener una instancia de "Algo" sino queremos irlo construyendo poco a poco, usamos el builder.

AlgoBuilder seraSu= new AlgoBuilder(),
// pasa el tiempo
seraSu.nombre("Cosa");
....
// pasa más tiempo
seraSu.numero( 1);
....
// eventualmente esta listo:

Algo algo = seraSu.datoConstruido();

El caso es que es un objeto auxiliar que te ayuda a construir otro objeto. Y por que querrías eso? Para hacer que ese otro sea inmutable.

La definición de algo sería:

class Algo {
   private final String nombre;
    private final int numero;
    public Algo( String nombre, int numero ) {
       this.nombre = nombre;
       this.numero = numero;
    }
    ...
    // más métodos.
}

El profesor Bárbaro Ferro escribió recientemente sobre esto y otros temas, revisa este link.

http://www.javamexico.org/blogs/bferro/%C2%BFcomo_crear_objetos

Espero que te sirva

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">