SlideShare a Scribd company logo
1 of 4
Patron de Diseño Builder, Java
El Patrón de diseño Builder o Constructor es usado para permitir la creación de una
variedad de objetos complejos desde un objeto fuente(Producto), el objeto fuente se
compone de una variedad de partes que contribuyen individualmente a la creación de
cada objeto complejo a través de un conjunto de llamadas a interfaces comunes de la
clase Abstract Builder.

Este patrón es medianamente usado.

Su intención es de abstrae el proceso de creación de un objeto complejo,
centralizando dicho proceso en un único punto, de tal forma que el mismo proceso de
construcción pueda crear representaciones diferentes.

Las clases y/u objetos que participan en este patron son los siguientes:

       Builder
              Define una interfaz abstracta para crear productos
       ConcreteBuilder
              Implementación de la interfaz Builder
              Construye y reune las partes necesarias para construir los productos
       Director
              Construye un objeto usando la interfaz Builder
       Producto
              El objeto complejo bajo construcción
              Metodos Propios
Puedes bajar el ejemplo y probarlo en tu pc. Fue desarrollado en Eclipse con Java 1.6SE
[descargar]

Este es el codigo:

public class Director {

//Builder uses a complex series of steps
public void Construct(Builder builder)
{
builder.BuildPartA();
builder.BuildPartB();
}

}

public abstract class Builder {

public abstract void BuildPartA();
public abstract void BuildPartB();
public abstract Product getResult();
}

public class ConcreteBuilder1 extends Builder{

private Product product = new Product();

@Override
public void BuildPartA() {
product.Add("PartA");

}

@Override
public void BuildPartB() {
product.Add("PartB");

}

public Product getResult()
{
return product;
}

}

public class ConcreteBuilder2 extends Builder{
private Product product = new Product();

@Override
public void BuildPartA() {
product.Add("PartX");

}

@Override
public void BuildPartB() {
product.Add("PartY");

}

public Product getResult()
{
return product;
}

}

import java.util.ArrayList;


public class Product {

ArrayList parts = new ArrayList();

public void Add(String part)
{
parts.add(part);

}

public void Show()
{
System.out.println("nProduct Parts -------");
for(Object part:parts)
System.out.println(part);
}

}



public class Main {

/**
* @param args
*/
public static void main(String[] args) {
// Create director and builders
Director director = new Director();

Builder b1 = new ConcreteBuilder1();
Builder b2 = new ConcreteBuilder2();

// Construct two products
director.Construct(b1);
Product p1 = b1.getResult();
p1.Show();

director.Construct(b2);
Product p2 = b2.getResult();
p2.Show();


}

}

Saludos

More Related Content

Similar to Patron de diseño builder

Builder - Design Pattern - GoF
Builder - Design Pattern - GoFBuilder - Design Pattern - GoF
Builder - Design Pattern - GoFjlrvpuma
 
Abstract factory. presentación
Abstract factory. presentaciónAbstract factory. presentación
Abstract factory. presentaciónavidal020
 
Abstract Factory -Design Pattern - GoF
Abstract Factory -Design Pattern - GoFAbstract Factory -Design Pattern - GoF
Abstract Factory -Design Pattern - GoFjlrvpuma
 
Patrones diseno software
Patrones diseno softwarePatrones diseno software
Patrones diseno softwarejjegonzalezf
 
Trabajo programacion jose (1)
Trabajo programacion jose (1)Trabajo programacion jose (1)
Trabajo programacion jose (1)jose valles
 
UDA-Plugin UDA. Guia de desarrollo
UDA-Plugin UDA. Guia de desarrolloUDA-Plugin UDA. Guia de desarrollo
UDA-Plugin UDA. Guia de desarrolloAnder Martinez
 
Taller desarrollando sitios web multiplataforma
Taller desarrollando sitios web multiplataformaTaller desarrollando sitios web multiplataforma
Taller desarrollando sitios web multiplataformaLuis Beltran
 
Ide Eclipse, Breve Guía
Ide Eclipse, Breve GuíaIde Eclipse, Breve Guía
Ide Eclipse, Breve GuíaBenedeti
 
Abstract factory. presentación
Abstract factory. presentaciónAbstract factory. presentación
Abstract factory. presentaciónavidal020
 
Visual basic terminado jose oropeza
Visual basic terminado jose oropezaVisual basic terminado jose oropeza
Visual basic terminado jose oropezaJose Martinez
 
Ponencia conic 2009_darc
Ponencia conic 2009_darcPonencia conic 2009_darc
Ponencia conic 2009_darcJorge Rodriguez
 

Similar to Patron de diseño builder (20)

Builder - Design Pattern - GoF
Builder - Design Pattern - GoFBuilder - Design Pattern - GoF
Builder - Design Pattern - GoF
 
Presentacion Patrones Creacionales
Presentacion Patrones CreacionalesPresentacion Patrones Creacionales
Presentacion Patrones Creacionales
 
Abstract Factory
Abstract FactoryAbstract Factory
Abstract Factory
 
Patrones Creacionales
Patrones CreacionalesPatrones Creacionales
Patrones Creacionales
 
Abstract factory. presentación
Abstract factory. presentaciónAbstract factory. presentación
Abstract factory. presentación
 
Abstract Factory -Design Pattern - GoF
Abstract Factory -Design Pattern - GoFAbstract Factory -Design Pattern - GoF
Abstract Factory -Design Pattern - GoF
 
Patrones diseno software
Patrones diseno softwarePatrones diseno software
Patrones diseno software
 
Patrones de diseño
Patrones de diseñoPatrones de diseño
Patrones de diseño
 
Trabajo programacion jose (1)
Trabajo programacion jose (1)Trabajo programacion jose (1)
Trabajo programacion jose (1)
 
Luis jose coronel num 42
Luis jose coronel num 42Luis jose coronel num 42
Luis jose coronel num 42
 
UDA-Plugin UDA. Guia de desarrollo
UDA-Plugin UDA. Guia de desarrolloUDA-Plugin UDA. Guia de desarrollo
UDA-Plugin UDA. Guia de desarrollo
 
Taller desarrollando sitios web multiplataforma
Taller desarrollando sitios web multiplataformaTaller desarrollando sitios web multiplataforma
Taller desarrollando sitios web multiplataforma
 
Ide Eclipse, Breve Guía
Ide Eclipse, Breve GuíaIde Eclipse, Breve Guía
Ide Eclipse, Breve Guía
 
Abstract factory. presentación
Abstract factory. presentaciónAbstract factory. presentación
Abstract factory. presentación
 
Code block
Code blockCode block
Code block
 
Fundamentos Básicos de Visual Basic
Fundamentos Básicos de Visual BasicFundamentos Básicos de Visual Basic
Fundamentos Básicos de Visual Basic
 
Expo 2 parametros
Expo 2   parametrosExpo 2   parametros
Expo 2 parametros
 
Visual basic jose oropeza
Visual basic jose oropezaVisual basic jose oropeza
Visual basic jose oropeza
 
Visual basic terminado jose oropeza
Visual basic terminado jose oropezaVisual basic terminado jose oropeza
Visual basic terminado jose oropeza
 
Ponencia conic 2009_darc
Ponencia conic 2009_darcPonencia conic 2009_darc
Ponencia conic 2009_darc
 

Patron de diseño builder

  • 1. Patron de Diseño Builder, Java El Patrón de diseño Builder o Constructor es usado para permitir la creación de una variedad de objetos complejos desde un objeto fuente(Producto), el objeto fuente se compone de una variedad de partes que contribuyen individualmente a la creación de cada objeto complejo a través de un conjunto de llamadas a interfaces comunes de la clase Abstract Builder. Este patrón es medianamente usado. Su intención es de abstrae el proceso de creación de un objeto complejo, centralizando dicho proceso en un único punto, de tal forma que el mismo proceso de construcción pueda crear representaciones diferentes. Las clases y/u objetos que participan en este patron son los siguientes: Builder Define una interfaz abstracta para crear productos ConcreteBuilder Implementación de la interfaz Builder Construye y reune las partes necesarias para construir los productos Director Construye un objeto usando la interfaz Builder Producto El objeto complejo bajo construcción Metodos Propios
  • 2. Puedes bajar el ejemplo y probarlo en tu pc. Fue desarrollado en Eclipse con Java 1.6SE [descargar] Este es el codigo: public class Director { //Builder uses a complex series of steps public void Construct(Builder builder) { builder.BuildPartA(); builder.BuildPartB(); } } public abstract class Builder { public abstract void BuildPartA(); public abstract void BuildPartB(); public abstract Product getResult(); } public class ConcreteBuilder1 extends Builder{ private Product product = new Product(); @Override public void BuildPartA() { product.Add("PartA"); } @Override public void BuildPartB() { product.Add("PartB"); } public Product getResult() { return product; } } public class ConcreteBuilder2 extends Builder{
  • 3. private Product product = new Product(); @Override public void BuildPartA() { product.Add("PartX"); } @Override public void BuildPartB() { product.Add("PartY"); } public Product getResult() { return product; } } import java.util.ArrayList; public class Product { ArrayList parts = new ArrayList(); public void Add(String part) { parts.add(part); } public void Show() { System.out.println("nProduct Parts -------"); for(Object part:parts) System.out.println(part); } } public class Main { /** * @param args
  • 4. */ public static void main(String[] args) { // Create director and builders Director director = new Director(); Builder b1 = new ConcreteBuilder1(); Builder b2 = new ConcreteBuilder2(); // Construct two products director.Construct(b1); Product p1 = b1.getResult(); p1.Show(); director.Construct(b2); Product p2 = b2.getResult(); p2.Show(); } } Saludos