Descargar

Introducción a los Patrones de Diseño de Software (página 2)

Enviado por Pablo Turmero


Partes: 1, 2
edu.red 11 Plantilla de definición Nombre Propósito ¿Qué hace?, ¿Cuál es su razón y propósito?, ¿Qué cuestión de diseño particular o problema aborda? Sinónimos Motivación Escenario que ilustra un problema particular y cómo el patrón lo resuelve.

edu.red 12 Plantilla de definición Aplicabilidad ¿En qué situaciones puede aplicarse?, ¿Cómo las reconoces?, ejemplos de diseños que pueden mejorarse. Estructura Diagramas de clases que ilustran la estructura Participantes Clases que participan y sus responsabilidades Colaboraciones Diagramas de interacción que muestran cómo colaboran los participantes.

edu.red 13 Plantilla de definición Consecuencias ¿Cómo alcanza el patrón sus objetivos?, ¿Cuáles son los compromisos y resultados de usar el patrón?, Alternativas, Costes y Beneficios Implementación Técnicas, heurísticas y consejos para la implementación ¿Hay cuestiones dependientes del lenguaje? Ejemplo de Código Usos conocidos Patrones relacionados

edu.red 14 Clasificación Ámbito (Gp:) Propósito (Gp:) Estructural (Gp:) Comportamiento (Gp:) Creación (Gp:) Herencia (Gp:) Compo- sición (Gp:) Factory Method (Gp:) Adapter (Gp:) Interpreter Template Method (Gp:) Abstract Factory Builder Prototype Singleton (Gp:) Adapter Bridge Composite Decorator Facade Flyweight Proxy (Gp:) Chain of Responsability Command Iterator Mediator Memento Observer State Strategy Visitor

edu.red 15 ¿A qué ayudan los patrones? Encontrar clases de diseño Especificar interfaces “Programar hacia la interfaz, no hacia la implementación” No declarar variables de clases concretas sino abstractas. Patrones de creación permiten que un sistema esté basado en términos de interfaces y no en implementaciones. Favorecen la reutilización a través de la composición en vez de la herencia

edu.red 16 Herencia vs. Clientela Relación fija

Reuso “caja blanca” Relación variable Reuso “caja negra” Clase abstracta Interfaz

edu.red 17 ¿A qué ayudan los patrones? Utilizan bastante la delegación Forma de hacer que la composición sea tan potente como la herencia. Un objeto receptor delega operaciones en su delegado Presente en muchos patrones: State, Strategy, Visitor,.. Caso extremo de composición, muestra que siempre puede sustituirse la herencia por composición.

edu.red 18 Delegación

edu.red 19 Delegación ()

edu.red 20 ¿A qué ayudan los patrones? La clave para la reutilización es anticiparse a los nuevos requisitos y cambios, de modo que los sistemas evolucionen de forma adecuada. Cada patrón permite que algunos aspectos de la estructura del sistema puedan cambiar de forma independiente a otros aspectos. Facilitan reuso interno, extensibilidad y mantenimiento.

edu.red 21 Causas comunes de rediseño i) Crear un objeto indicando la clase. ii) Dependencia de operaciones específicas iii) Dependencia de plataformas hardware o software iv) Dependencia sobre representación de objetos. v) Dependencias de algoritmos vi) Acoplamiento fuerte entre clases vii) Extender funcionalidad mediante subclases viii) Incapacidad de cambiar clases convenientemente

edu.red 22 Patrones frente a esos peligros i) Abstract factory, Method factory, Prototype ii) Chain of Responsability, Command iii) Abstract factory, Bridge iv) Abstract factory, Bridge, Memento, Proxy, v) Builder, Iterator, Strategy, Template Method, Visitor vi) Abstract factory, Bridge, Chain of Responsability, Command, Facade, Mediator, Observer vii) Bridge, Chain of Responsability, Composite, Decorator, Observer, Strategy viii) Adapter, Decorator, Visitor

edu.red 23 ¿Cómo seleccionar un patrón? Considera de que forma los patrones resuelven problemas de diseño Lee la sección que describe el propósito de cada patrón Estudia las interrelaciones entre patrones Analiza patrones con el mismo propósito Examina las causas de rediseñar Considera que debería ser variable en tu diseño

edu.red 24 ¿Cómo usar un patrón? Lee el patrón, todos sus apartados, para coger una visión global. Estudia la Estructura, Participantes y Colaboraciones Mira el ejemplo de código Asocia a cada participante del patrón un elemento software de tu aplicación. Implementa las clases y métodos relacionados con el patrón.

Partes: 1, 2
 Página anterior Volver al principio del trabajoPágina siguiente