SlideShare una empresa de Scribd logo
1 de 12
Erika Alexandra Alvarez Gómez
Su intención es de abstraer el proceso de creación de un 
objeto completo, centralizando dicho proceso en un único 
punto, de tal forma que el mismo proceso de construcción 
pueda crear representaciones diferentes.
 Utilizado para permitir la creación de objetos complejos a 
partir de un objeto fuente. 
 El objeto fuente contiene varias partes que 
individualmente contribuyen a la creación de cada objeto 
complejo a través de un conjunto de llamadas a interfaces 
comunes de la clase Abstract Builder.
 BUILDER: Interfaz abstracta para crear productos 
 CONCRETE BUILDER: 
 Implementación del Builder 
 Construye y reúne las partes necesarias para construir los productos 
 DIRECTOR: 
 Construye un objeto usando el patrón Builder 
PRODUCTO: 
 El objeto complejo bajo construcción.
1. El cliente crea el objeto Director y lo configura con el objeto Builder deseado 
(HawaiPizza por ejemplo). 
2. El Director notifica al constructor cuando una parte del producto se debe 
construir. 
3. El Builder maneja los requerimientos desde el director y agrega partes al 
producto. 
4. El Cliente recupera el producto desde el constructor.
Director: Cocina 
package Clases; 
import javax.swing.JApplet; 
public class Cocina { 
private PizzaBuilder pizzaBuilder; 
public void setPizzaBuilder(PizzaBuilder pb) { pizzaBuilder = pb; } 
public Pizza getPizza() { return pizzaBuilder.getPizza(); } 
public void construirPizza() { 
pizzaBuilder.crearNuevaPizza(); 
pizzaBuilder.buildMasa(); 
pizzaBuilder.buildSalsa(); 
pizzaBuilder.buildRelleno(); 
} 
}
Builder: Pizza 
package Clases; 
import javax.swing.JApplet; 
public class Pizza { 
private String masa = ""; 
private String salsa = ""; 
private String relleno = ""; 
public void setMasa(String masa) { this.masa = masa; } 
public void setSalsa(String salsa) { this.salsa = salsa; } 
public void setRelleno(String relleno) { this.relleno = relleno; } 
}
ConcreteBuilder: PizzaBuilder 
package Clases; 
import javax.swing.JApplet; 
public abstract class PizzaBuilder { 
protected Pizza pizza; 
public Pizza getPizza() { return pizza; } 
public void crearNuevaPizza() { pizza = new 
Pizza(); } 
public abstract void buildMasa(); 
public abstract void buildSalsa(); 
public abstract void buildRelleno(); 
}
Producto: HawaiPizzaBuilder 
package Clases; 
import javax.swing.JApplet; 
public class HawaiPizzaBuilder extends 
PizzaBuilder { 
public void buildMasa() { 
pizza.setMasa("suave"); 
} 
public void buildSalsa() { 
pizza.setSalsa("dulce"); 
} 
public void buildRelleno() { 
pizza.setRelleno("chorizo+alcachofas"); 
} 
}
Producto: PicantePizzaBuilder 
package Clases; 
import javax.swing.JApplet; 
public class PicantePizzaBuilder extends 
PizzaBuilder { 
public void buildMasa() { 
pizza.setMasa("cocida"); 
} 
public void buildSalsa() { 
pizza.setSalsa("picante"); 
} 
public void buildRelleno() { 
pizza.setRelleno("pimienta+salchichón"); 
} 
} 
https://www.youtube.com/watch?v=M1VOvNaiJPc
 Reduce el acoplamiento. 
 Permite variar la representación interna de estructuras 
complejas. 
 Se independiza del código de construcción de la representación. 
 Cada ConcreteBuilder tiene el código especifico para crear y 
modificar una estructura interna concreta. 
 Permite un mayor control en el proceso de creación del objeto.

Más contenido relacionado

La actualidad más candente

Buider Patron de Diseño
Buider Patron de DiseñoBuider Patron de Diseño
Buider Patron de DiseñoMario Cabrera
 
Diagramas de implementacion
Diagramas de implementacionDiagramas de implementacion
Diagramas de implementacionZonickX
 
Patrones de creación
Patrones de creaciónPatrones de creación
Patrones de creaciónAutentia
 
Sistema distribuido
Sistema distribuidoSistema distribuido
Sistema distribuidoBonita Vm
 
Prototype (patron de disenio)
Prototype (patron de disenio)Prototype (patron de disenio)
Prototype (patron de disenio)Jhonny Zaruma
 
Modelo de datos semantico
Modelo de datos semanticoModelo de datos semantico
Modelo de datos semanticoclasetic2011
 
Arquitectura de sistemas distribuidos-grupo Maria
Arquitectura de sistemas distribuidos-grupo MariaArquitectura de sistemas distribuidos-grupo Maria
Arquitectura de sistemas distribuidos-grupo Mariagequito
 
Optimiser son environnement de développement PHP (Tuto NetBeans v4.4)
Optimiser son environnement de développement PHP (Tuto NetBeans v4.4)Optimiser son environnement de développement PHP (Tuto NetBeans v4.4)
Optimiser son environnement de développement PHP (Tuto NetBeans v4.4)Nicolas Defay
 
Arquitectura de cliente-servidor de tres capas
Arquitectura de cliente-servidor de tres capasArquitectura de cliente-servidor de tres capas
Arquitectura de cliente-servidor de tres capasanibalsmit
 
Tema 2 - T2: Métodos y actividades de la ingeniería de requisitos
Tema 2 - T2: Métodos y actividades de la ingeniería de requisitosTema 2 - T2: Métodos y actividades de la ingeniería de requisitos
Tema 2 - T2: Métodos y actividades de la ingeniería de requisitosMagemyl Egana
 
Javaserver Faces (jsf)
Javaserver Faces (jsf)Javaserver Faces (jsf)
Javaserver Faces (jsf)Enrique Polo
 

La actualidad más candente (20)

Principales estilos arquitectónicos
Principales estilos arquitectónicosPrincipales estilos arquitectónicos
Principales estilos arquitectónicos
 
Uml clase 04_uml_clases
Uml clase 04_uml_clasesUml clase 04_uml_clases
Uml clase 04_uml_clases
 
Buider Patron de Diseño
Buider Patron de DiseñoBuider Patron de Diseño
Buider Patron de Diseño
 
Diagramas de implementacion
Diagramas de implementacionDiagramas de implementacion
Diagramas de implementacion
 
Patrones de creación
Patrones de creaciónPatrones de creación
Patrones de creación
 
Presentacion Patrones Creacionales
Presentacion Patrones CreacionalesPresentacion Patrones Creacionales
Presentacion Patrones Creacionales
 
Sistema distribuido
Sistema distribuidoSistema distribuido
Sistema distribuido
 
Prototype (patron de disenio)
Prototype (patron de disenio)Prototype (patron de disenio)
Prototype (patron de disenio)
 
Introduccion a UML
Introduccion a UMLIntroduccion a UML
Introduccion a UML
 
Historias de usuario
Historias de usuarioHistorias de usuario
Historias de usuario
 
Modelo de datos semantico
Modelo de datos semanticoModelo de datos semantico
Modelo de datos semantico
 
02.modelo e r
02.modelo e r02.modelo e r
02.modelo e r
 
Arquitectura de sistemas distribuidos-grupo Maria
Arquitectura de sistemas distribuidos-grupo MariaArquitectura de sistemas distribuidos-grupo Maria
Arquitectura de sistemas distribuidos-grupo Maria
 
Optimiser son environnement de développement PHP (Tuto NetBeans v4.4)
Optimiser son environnement de développement PHP (Tuto NetBeans v4.4)Optimiser son environnement de développement PHP (Tuto NetBeans v4.4)
Optimiser son environnement de développement PHP (Tuto NetBeans v4.4)
 
Arquitectura de cliente-servidor de tres capas
Arquitectura de cliente-servidor de tres capasArquitectura de cliente-servidor de tres capas
Arquitectura de cliente-servidor de tres capas
 
Tema 2 - T2: Métodos y actividades de la ingeniería de requisitos
Tema 2 - T2: Métodos y actividades de la ingeniería de requisitosTema 2 - T2: Métodos y actividades de la ingeniería de requisitos
Tema 2 - T2: Métodos y actividades de la ingeniería de requisitos
 
Patron fachada...
Patron fachada...Patron fachada...
Patron fachada...
 
Curso JSF - Conceptos Basicos
Curso JSF - Conceptos BasicosCurso JSF - Conceptos Basicos
Curso JSF - Conceptos Basicos
 
Javaserver Faces (jsf)
Javaserver Faces (jsf)Javaserver Faces (jsf)
Javaserver Faces (jsf)
 
Conceptos basicos arquitectura de software
Conceptos basicos arquitectura de softwareConceptos basicos arquitectura de software
Conceptos basicos arquitectura de software
 

Similar a Patron builder

Planteamiento de-ejercicios-2011
Planteamiento de-ejercicios-2011Planteamiento de-ejercicios-2011
Planteamiento de-ejercicios-2011Orlando Barcia
 
Taller desarrollando sitios web multiplataforma
Taller desarrollando sitios web multiplataformaTaller desarrollando sitios web multiplataforma
Taller desarrollando sitios web multiplataformaLuis Beltran
 
Vue + Typescript: Decorators vs. Extend, Fight!
Vue + Typescript: Decorators vs. Extend, Fight!Vue + Typescript: Decorators vs. Extend, Fight!
Vue + Typescript: Decorators vs. Extend, Fight!Sara Lissette L. Ibáñez
 
Builder - Design Pattern - GoF
Builder - Design Pattern - GoFBuilder - Design Pattern - GoF
Builder - Design Pattern - GoFjlrvpuma
 
Introducción al desarrollo de aplicaciones web
Introducción al desarrollo de aplicaciones webIntroducción al desarrollo de aplicaciones web
Introducción al desarrollo de aplicaciones webAnfap
 
Xamarin - Aplicaciones Móviles con .Net
Xamarin - Aplicaciones Móviles con .Net Xamarin - Aplicaciones Móviles con .Net
Xamarin - Aplicaciones Móviles con .Net Andrés Londoño
 
Vb aspx sitio
Vb aspx sitioVb aspx sitio
Vb aspx sitiojlmanmons
 
Ejemplo de un codigo a través de un lenguaje de programacion llamado java
Ejemplo de un codigo a través de un lenguaje de programacion llamado javaEjemplo de un codigo a través de un lenguaje de programacion llamado java
Ejemplo de un codigo a través de un lenguaje de programacion llamado javaIng-D-SW-TorresKhano--ME
 
Tutorial CodeIgniter + Netbeans 7
Tutorial CodeIgniter + Netbeans 7Tutorial CodeIgniter + Netbeans 7
Tutorial CodeIgniter + Netbeans 7Juan Fede
 
Patrones diseno software
Patrones diseno softwarePatrones diseno software
Patrones diseno softwarejjegonzalezf
 
Dependency Injection con Guice - GTUG
Dependency Injection con Guice - GTUGDependency Injection con Guice - GTUG
Dependency Injection con Guice - GTUGJordi Gerona
 
2da clase moviles_jme_alert_form_text_field_so_uch
2da clase moviles_jme_alert_form_text_field_so_uch2da clase moviles_jme_alert_form_text_field_so_uch
2da clase moviles_jme_alert_form_text_field_so_uchepalomino2012
 

Similar a Patron builder (20)

Patron de diseño builder
Patron de diseño builderPatron de diseño builder
Patron de diseño builder
 
Planteamiento de-ejercicios-2011
Planteamiento de-ejercicios-2011Planteamiento de-ejercicios-2011
Planteamiento de-ejercicios-2011
 
Taller desarrollando sitios web multiplataforma
Taller desarrollando sitios web multiplataformaTaller desarrollando sitios web multiplataforma
Taller desarrollando sitios web multiplataforma
 
Vue + Typescript: Decorators vs. Extend, Fight!
Vue + Typescript: Decorators vs. Extend, Fight!Vue + Typescript: Decorators vs. Extend, Fight!
Vue + Typescript: Decorators vs. Extend, Fight!
 
Builder - Design Pattern - GoF
Builder - Design Pattern - GoFBuilder - Design Pattern - GoF
Builder - Design Pattern - GoF
 
Introducción al desarrollo de aplicaciones web
Introducción al desarrollo de aplicaciones webIntroducción al desarrollo de aplicaciones web
Introducción al desarrollo de aplicaciones web
 
Xamarin - Aplicaciones Móviles con .Net
Xamarin - Aplicaciones Móviles con .Net Xamarin - Aplicaciones Móviles con .Net
Xamarin - Aplicaciones Móviles con .Net
 
Decorator
DecoratorDecorator
Decorator
 
Foca API v0.1
Foca API v0.1Foca API v0.1
Foca API v0.1
 
S8-DS2.pptx
S8-DS2.pptxS8-DS2.pptx
S8-DS2.pptx
 
Vb aspx sitio
Vb aspx sitioVb aspx sitio
Vb aspx sitio
 
OSGi
OSGiOSGi
OSGi
 
Integrando sonar
Integrando sonarIntegrando sonar
Integrando sonar
 
Ejemplo de un codigo a través de un lenguaje de programacion llamado java
Ejemplo de un codigo a través de un lenguaje de programacion llamado javaEjemplo de un codigo a través de un lenguaje de programacion llamado java
Ejemplo de un codigo a través de un lenguaje de programacion llamado java
 
Tutorial CodeIgniter + Netbeans 7
Tutorial CodeIgniter + Netbeans 7Tutorial CodeIgniter + Netbeans 7
Tutorial CodeIgniter + Netbeans 7
 
Vbr Awt 01
Vbr Awt 01Vbr Awt 01
Vbr Awt 01
 
Patrones diseno software
Patrones diseno softwarePatrones diseno software
Patrones diseno software
 
Dependency Injection con Guice - GTUG
Dependency Injection con Guice - GTUGDependency Injection con Guice - GTUG
Dependency Injection con Guice - GTUG
 
2da clase moviles_jme_alert_form_text_field_so_uch
2da clase moviles_jme_alert_form_text_field_so_uch2da clase moviles_jme_alert_form_text_field_so_uch
2da clase moviles_jme_alert_form_text_field_so_uch
 
Gwt III - Avanzado
Gwt III - AvanzadoGwt III - Avanzado
Gwt III - Avanzado
 

Último

PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxlupitavic
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 
Ley 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularLey 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularMooPandrea
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdfDemetrio Ccesa Rayme
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dstEphaniiie
 
plan de capacitacion docente AIP 2024 clllll.pdf
plan de capacitacion docente  AIP 2024          clllll.pdfplan de capacitacion docente  AIP 2024          clllll.pdf
plan de capacitacion docente AIP 2024 clllll.pdfenelcielosiempre
 
plande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfplande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfenelcielosiempre
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfMaritzaRetamozoVera
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...JonathanCovena1
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaDecaunlz
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxKarlaMassielMartinez
 
Éteres. Química Orgánica. Propiedades y reacciones
Éteres. Química Orgánica. Propiedades y reaccionesÉteres. Química Orgánica. Propiedades y reacciones
Éteres. Química Orgánica. Propiedades y reaccionesLauraColom3
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxMaritzaRetamozoVera
 

Último (20)

PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 
Ley 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularLey 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circular
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdf
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
 
plan de capacitacion docente AIP 2024 clllll.pdf
plan de capacitacion docente  AIP 2024          clllll.pdfplan de capacitacion docente  AIP 2024          clllll.pdf
plan de capacitacion docente AIP 2024 clllll.pdf
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
plande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfplande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdf
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 
Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
 
Éteres. Química Orgánica. Propiedades y reacciones
Éteres. Química Orgánica. Propiedades y reaccionesÉteres. Química Orgánica. Propiedades y reacciones
Éteres. Química Orgánica. Propiedades y reacciones
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docx
 

Patron builder

  • 2. Su intención es de abstraer el proceso de creación de un objeto completo, centralizando dicho proceso en un único punto, de tal forma que el mismo proceso de construcción pueda crear representaciones diferentes.
  • 3.  Utilizado para permitir la creación de objetos complejos a partir de un objeto fuente.  El objeto fuente contiene varias partes que individualmente contribuyen a la creación de cada objeto complejo a través de un conjunto de llamadas a interfaces comunes de la clase Abstract Builder.
  • 4.  BUILDER: Interfaz abstracta para crear productos  CONCRETE BUILDER:  Implementación del Builder  Construye y reúne las partes necesarias para construir los productos  DIRECTOR:  Construye un objeto usando el patrón Builder PRODUCTO:  El objeto complejo bajo construcción.
  • 5.
  • 6. 1. El cliente crea el objeto Director y lo configura con el objeto Builder deseado (HawaiPizza por ejemplo). 2. El Director notifica al constructor cuando una parte del producto se debe construir. 3. El Builder maneja los requerimientos desde el director y agrega partes al producto. 4. El Cliente recupera el producto desde el constructor.
  • 7. Director: Cocina package Clases; import javax.swing.JApplet; public class Cocina { private PizzaBuilder pizzaBuilder; public void setPizzaBuilder(PizzaBuilder pb) { pizzaBuilder = pb; } public Pizza getPizza() { return pizzaBuilder.getPizza(); } public void construirPizza() { pizzaBuilder.crearNuevaPizza(); pizzaBuilder.buildMasa(); pizzaBuilder.buildSalsa(); pizzaBuilder.buildRelleno(); } }
  • 8. Builder: Pizza package Clases; import javax.swing.JApplet; public class Pizza { private String masa = ""; private String salsa = ""; private String relleno = ""; public void setMasa(String masa) { this.masa = masa; } public void setSalsa(String salsa) { this.salsa = salsa; } public void setRelleno(String relleno) { this.relleno = relleno; } }
  • 9. ConcreteBuilder: PizzaBuilder package Clases; import javax.swing.JApplet; public abstract class PizzaBuilder { protected Pizza pizza; public Pizza getPizza() { return pizza; } public void crearNuevaPizza() { pizza = new Pizza(); } public abstract void buildMasa(); public abstract void buildSalsa(); public abstract void buildRelleno(); }
  • 10. Producto: HawaiPizzaBuilder package Clases; import javax.swing.JApplet; public class HawaiPizzaBuilder extends PizzaBuilder { public void buildMasa() { pizza.setMasa("suave"); } public void buildSalsa() { pizza.setSalsa("dulce"); } public void buildRelleno() { pizza.setRelleno("chorizo+alcachofas"); } }
  • 11. Producto: PicantePizzaBuilder package Clases; import javax.swing.JApplet; public class PicantePizzaBuilder extends PizzaBuilder { public void buildMasa() { pizza.setMasa("cocida"); } public void buildSalsa() { pizza.setSalsa("picante"); } public void buildRelleno() { pizza.setRelleno("pimienta+salchichón"); } } https://www.youtube.com/watch?v=M1VOvNaiJPc
  • 12.  Reduce el acoplamiento.  Permite variar la representación interna de estructuras complejas.  Se independiza del código de construcción de la representación.  Cada ConcreteBuilder tiene el código especifico para crear y modificar una estructura interna concreta.  Permite un mayor control en el proceso de creación del objeto.