Builder

Anuncio
Autor: Francisco José Bibiloni Afanador
DNI.: 43.123.105-Z
Prof.: Yuhua Luo
ÍNDICE
• Introducción Patrones de Diseño
• Patrón Builder
• Implementación Builder en la
Práctica.
Introducción
¿Por qué se utilizan los Patrones de Diseño?
Principalmente la utilización de los patrones
ha venido por la escasa reutilización de trabajos en
desarrollo de software. Por cuya causa se han
recopilado, y se recopilan, técnicas que permitan
la reutilización en el Desarrollo de Software.
Introducción
Ventajas de la Reutilización:
• Se abrevia la programación
• Para futuras renovaciones del código, la
reutilización
facilita
el
trabajo
de
mantenimiento
• Mejora la fiabilidad
• El código se va mejorando repetidamente
al largo del tiempo, ya que se va mejorando
constantemente, por optimización y mejoras
de rendimiento, por ejemplo.
• Y algunas más …
¿CUÁNTOS PATRONES
TENEMOS?
Introducción
Ámbito
Propósito
Creación
Clase
Comportamiento
- Factory Method
- Adapter
- Template Method
- Interpreter
- Abstract Factory
- Prototype
- Singleton
-Adapter
- Bridge
- Composite
- Decorator
- Facade
- FlyWeight
- Proxy
- Chain of Responsability
- Command
- Iterator
- Mediator
- Memento
- Observer
- State
- Strategy
- Visitor
Objeto
Estructural
Builder
Patrón Builder
• PROPÓSITO: “CREACIÓN”.
El objetivo es
conseguir que la construcción de un OBJETO
COMPUESTO
sea
independiente
de
su
REPRESENTACIÓN,
de
manera
que
la
CONSTRUCCIÓN no se vea afectada por el
hecho de que cambie su forma de
REPRESENTACIÓN.
Ejemplo:
Podemos crear Pizzas
Podemos crear Medicamentos
Podemos crear Children’s Meal
…
Patrón Builder
• MOTIVACIÓN: Nos facilita la construcción de
un objeto con una composición de más
objetos. El caso habitual es la de construir una
Interfaz de usuario.
Ejemplo más Concreto:
 Crear una Interfaz para Crear Pizzas…
Patrón Builder
Problema:
Un Empresario desea abrir una Pizzería
para ventas a domicilio. Sólo tendrá 2 tipos de
Pizzas distintas.
Solución:
Sabemos que tendremos lo siguiente:
• Builder: “PizzaBuilder”
• Director: “Cocina”
• Producto: “Pizza”
• Concrete Builder: “PizzaTurca y PizzaCalzone”
Patrón Builder
• APLICABILIDAD: Lo utilizaremos cuando en
nuestra aplicación queramos que:
 El algoritmo para la creación de cuyo
objeto complejo, deber ser independiente de
las partes que lo forman y cómo están
ensambladas.
 El proceso de construcción debe permitir
diferentes representaciones del objeto que se
construye.
Patrón Builder
• ESTRUCTURA:
Patrón Builder
• PARTICIPANTES:
 Builder: Especifica una interfaz abstracta
para crear las partes de un objeto Producto.
 ConcreteBuilder:
 Construye y ensambla las partes del
Producto
 Define la Representación a Crear
 Proporciona una interfaz para recuperar
el Producto.
 Director: El encargado de crear el Objeto
Complejo utilizando la interfaz Builder.
 Producto: Representa el Objeto Complejo
en Construcción.
Patrón Builder
• COLABORACIONES: Lo más relevante desde
nuestro punto de vista es:
¿Cómo utilizar el Patrón Builder en la práctica?
Con todo lo explicado hasta ahora sólo es
teoría,
de
cómo
se
estructura
esta
receta/plantilla… pero podríamos implementar
incorrectamente este patrón sin leer este punto.
Veamos los pasos a seguir para implementar el
Patrón Builder:
Patrón Builder
1. El Cliente crea el objeto Director y lo
configura con el objeto Builder deseado
(PizzaTurca, por ejemplo).
2. El Director notifica al constructor cuándo 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.
Patrón Builder
• CONSECUENCIAS:
 Permite variar la representación interna de
un Producto: como el producto se construye
a través de una interfaz abstracta, para
cambiar la representación interna del
producto es definir un nuevo tipo de
constructor.
 Permite separar el código de la
construcción y la representación.
 Da control refinado sobre el proceso de
construcción. El patrón Builder construye el
producto paso a paso bajo el control del
Director.
Implementación
En este punto voy a describir como he
implementado el patrón Builder a mi práctica.
LA PRÁCTICA.
 Enunciado: una fábrica Farmacéutica
desea informatizar todo el Sistema de
Creación de sus Productos farmacéuticos. En
concreto esta empresa realiza 8 distintos tipos
de medicamentos 
Antitusivo Jarabe
Anagésico Píldora
Analgésico Líquido
Antibiótico Capsula
Antibiótico Efervescente
Antipirético Supositorio
Antipirético Gotas
Antigripal Sobres
Implementación
Solución:
 Lenguaje utilizado JAVA
 Se ha implementado una aplicación WEB
con un Diseño Modelo – Vista – Controlador.
 Dentro del Modelo se ha incluido una
Package en el cual contiene toda la
implementación del Patrón Builder (clase
Builder, el Producto, etc.)
Implementación
Implementación
VEAMOS ALGO UN POCO
MÁS AMENO…
Bibliografía
http://en.wikipedia.org/wiki/Builder_pattern
http://www.allapplabs.com/java_design_patterns/builder_pattern.h
tm
http://www.programacion.com/java/articulo/joa_patrones3/#joa_
patrones3_constructor
http://www.programmersheaven.com/articles/faisal/pattern.htm
http://www.apwebco.com/gofpatterns/creational/Builder.html
Descargar