Monografias.com > Computación
Descargar Imprimir Comentar Ver trabajos relacionados

Introducción a los Patrones de Creación de Software




Enviado por Pablo Turmero



Partes: 1, 2, 3, 4


    Monografias.com
    1
    Patrones de Creación
    Abstraen el proceso de creación de objetos.
    Ayudan a crear sistemas independientes de cómo los objetos son creados, compuestos y representados.
    El sistema conoce las clases abstractas
    Flexibilidad en qué se crea, quién lo crea, cómo se crea y cuándo se crea.

    Monografias.com
    public class JuegoLaberinto {
    public Laberinto makeLaberinto () {
    Laberinto unLab = new Laberinto();
    Habitacion h1 = new Habitacion(1);
    Habitacion h2 = new Habitacion(2);
    Puerta unaPuerta = new Puerta(1,2)

    unLab .addHabitacion (h1);
    unLab .addHabitacion (h2);

    h1.setLado(Norte, new Pared() );
    h1.setLado(Sur, new Pared() );
    h1.setLado(Este, new Pared() );
    h1.setLado(Oeste,unaPuerta);

    h2.setLado(Norte, new Pared);

    return unLab;}
    }

    Monografias.com
    3
    Ejemplo: Laberinto
    Poco flexible
    ¿Cómo crear laberintos con otros tipos de elementos como habitacionesEncantadas o puertasQueEscuchan?

    Patrones de creación permiten eliminar referencias explícitas a clases concretas desde el código que necesita crear instancias de esas clases.

    Monografias.com
    4
    Abstract Factory (Factoría Abstracta)
    Propósito
    Proporcionar una interfaz para crear familias de objetos relacionados o dependientes sin especificar la clase concreta
    Motivación
    Un toolkit interfaz de usuario que soporta diferentes formatos: Windows, Motif, X-Windows,..

    Monografias.com
    5
    Factoría Abstracta
    Aplicabilidad
    Un sistema debería ser independiente de cómo sus productos son creados, compuestos y representados
    Un sistema debería ser configurado para una familia de productos.
    Una familia de objetos “productos” relacionados es diseñada para ser utilizado juntos y se necesita forzar la restricción.

    Monografias.com
    6
    Factoría Abstracta
    Consecuencias
    Aísla a los clientes de las clases concretas de implementación.
    Facilita el intercambio de familias de productos.
    Favorece la consistencia entre productos
    Es difícil soportar nuevos productos.

    Monografias.com
    7
    Factoría Abstracta
    Implementación
    Factorías como singleton.
    Se necesita una subclase de AbstractFactory por cada familia de productos que redefine un conjunto de métodos factoría.
    Posibilidad de usar el patrón Prototype.
    Definir factorías extensibles: AbstractFactory sólo necesita un método de creación.

    Monografias.com
    8
    Ejemplo 1: Laberinto
    public class FactoriaLaberinto {
    public Laberinto makeLaberinto { return new Laberinto();}
    public Pared makePared {return new Pared();};
    public Habitacion makeHabitacion(int n)
    { return new Habitacion(n); };
    public Puerta makePuerta (Habitacion h1, Habitacion h2)
    {return new Puerta(h1,h2);}
    }

    Monografias.com
    9
    public class JuegoLaberinto {
    public Laberinto makeLaberinto (FactoriaLaberinto factoria) {
    Laberinto unLab = factoria.makeLaberinto();
    Habitacion h1 = factoria.makeHabitacion(1);
    Habitacion h2 = factoria.makeHabitacion(2);
    Puerta unaPuerta = factoria.makePuerta(h1,h2);
    unLab.addHabitacion(h1);
    unLab.addHabitacion(h2);
    h1.setLado(Norte, factoria.makePared() );
    h1.setLado(Este, unaPuerta)

    h2.setLado(Oeste, unaPuerta);
    h2.setLado(Sur, factoria.makePared() )
    return unLab; }
    }
    Ejemplo 1: Laberinto

    Monografias.com
    10
    Builder (Constructor)
    Propósito
    Separa la construcción de un objeto complejo de su representación, así que el mismo proceso de construcción puede crear diferentes representaciones.
    Motivación
    Un traductor de documentos RTF a otros formatos. ¿Es posible añadir una nueva conversión sin modificar el traductor?

    Partes: 1, 2, 3, 4

    Página siguiente 

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter