Patrones De Diseño
Enviado por vlorono • 12 de Agosto de 2014 • 2.021 Palabras (9 Páginas) • 211 Visitas
PATRONES DE DISEÑO
Un patrón de diseño provee un esquema para refinar los subsistemas o componentes de un sistema de software, o las relaciones entre ellos. Describe la estructura comúnmente recurrente de los componentes en comunicación, que resuelve un problema general de diseño en un contexto particular (Buschman et al., 1996).
Son menores en escala que los patrones arquitectónicos, y tienden a ser independientes de los lenguajes y paradigmas de programación. Su aplicación no tiene efectos en la estructura fundamental del sistema, pero sí sobre la de un subsistema (Buschman et al., 1996), debido a que especifica a un mayor nivel de detalle, sin llegar a la implementación, el comportamiento de los componentes del subsistema. La tabla 12 presenta algunos patrones de diseño, junto a los atributos de calidad que propician y los atributos que entran en conflicto con la aplicación del patrón, según Buschmann et al. (1996).
Estos patrones representan una forma de formalizar la reusabilidad de código ante situaciones similares a las ya conocidas. Se plantean como una buena herramienta para el diseño y la documentación de aplicaciones y frameworks.
Son descripciones de objetos y clases que se comunican y que son capaces de solucionar un problema de diseño en general, en un contexto en particular. Según el Arq. Alexander Christopher (70’s) los patrones de diseño son "Cada patrón describe un problema que ocurre una y otra vez en nuestro entorno, para describir después el núcleo de la solución a ese problema, de tal manera que esa solución pueda ser usada más de un millón de veces sin hacerlo ni siquiera dos veces de la misma forma".
Importancia de los patrones de diseño
Para diseñar software orientado a objetos reutilizable hay que encontrar los objetos pertinentes, factorizarlos en clases con la granularidad adecuada, definir interfaces de clases y jerarquías de herencia y establecer las principales relaciones entre esas clases y objetos. El diseño debe ser específico del problema que estamos manejando, pero también lo suficientemente general para adecuarse a futuros requisitos y problemas. También queremos evitar el rediseño, o al menos minimizarlo.
Lo que no hay que hacer es resolver cada problema partiendo desde cero. Por el contrario, se deben reutilizar soluciones que ya han sido útiles en el pasado. Cuando se encuentra una solución buena, debe usarse una y otra ...
Los patrones de diseño se dividen en tres grupos principales:
• Patrones de creación: Patrón de Fábrica Abstracta, Patrón Constructor, Patrón del Método de Fabricación, Patrón Prototipo, Patrón de Instancia Única (Singleton).
• Patrones estructurales: Patrón Adaptador, Patrón Puente, Patrón Compuesto, Patrón Decorador, Patrón de Fachada, Patrón de Peso Mosca, Patrón Apoderado.
• Patrones funcionales: Patrón de Cadena de Responsabilidad, Patrón de Comando, Patrón Intérprete, Patrón Iterador, Patrón Mediador, Patrón Memento, Patrón Observador, Patrón de Estado, Patrón de Estrategia, Patrón del Método Plantilla, Patrón Visitante.
CARACTERISTICAS DE UN PATRON DE DISEÑO
Unasolución estándar para un problema común de programación.
Una técnica para flexibilizar el código haciéndolo satisfacer ciertos criterios.
Un proyecto o estructura de implementación que logra unafinalidad determinada.
Un lenguaje de programación de alto nivel.
Una manera más práctica de describir ciertos aspectos de la organización de un programa.
Conexiones entre componentes deprogramas.
La forma de un diagrama de objeto o de un modelo de objeto.
OBJETIVOS DE LOS PATRONES DE DISEÑO
Proporcionar catálogos de elementos reusables en el diseño de sistemas de software.
Evitar lareiteración en la búsqueda de soluciones a problemas ya conocidos y solucionados anteriormente.
Formalizar un vocabulario común entre diseñadores.
Estandarizar el modo en que se realiza el diseño.Facilitar el aprendizaje a los nuevos integrantes del equipo.
Fomentar la creatividad al proceso de diseño.
CATEGORIAS DE PATRONES DE DISEÑO
Patrones de arquitectura: Aquellos que expresan un esquemaorganizativo estructural, fundamental para sistemas de software.
Patrones de diseño: Aquellos que expresan esquemas para definir estructuras de diseño con las cuales construir sistemas de software.Dialectos: Patrones de bajo nivel específicos para un lenguaje de programación o entorno concreto.
ESTRUCTURA DE UN PATRÓN DE DISEÑO
Nombre del patrón.
Clasificación del patrón (creacionales,estructural o de comportamiento.)
Intención: problema que pretende solucionar.
Motivación: escenario de aplicación.
Aplicabilidad: Usos comunes y criterios de aplicación.
Estructura: Diagramas de de clases que describan las clases que intervienen en el patrón.
Participantes: enumeración y descripción de las entidades abstractas (relaciones, propiedades), que participan en el patrón.
Colaboraciones: Explicación de las inter-relaciones que se dan entre los participantes.
Consecuencias: positivas y negativas en el diseño derivadas de la implementación del patrón.
Implementación: técnicas o comentarios sobre el patrón.
Código de ejemplo: código fuente ejemplo de implementación del patrón.
Usos conocidos: ejemplos de sistemas reales que usan el patrón.
Patrones relacionados: referencias a otros patrones.
CLASIFICACIÓN DE LOS PATRONES DE DISEÑO
PATRONES CREACIONALES
Abstract Factory (Fábrica abstracta): Permite trabajar con objetos de distintas familias de manera que las familias no se mezclen entre sí y haciendo transparente el tipo de familia concreta que se esté usando.
Builder (Constructor virtual): Abstrae el proceso de creación de un objeto complejo, centralizando dicho proceso en un único punto.
Factory Method (Método de fabricación): Centraliza en una clase constructora la creación de objetos de un subtipo de un tipo determinado.
Prototype (Prototipo): Crea nuevos objetos a partir de una instancia ya existente.
Singleton (Instancia única): Garantiza la existencia de una única instancia para una clase y la creación de un mecanismo de acceso global a dicha instancia.
PATRONES ESTRUCTURALES
Adapter (Adaptador): Adapta una interfaz para que pueda ser utilizada por una clase que de otro modo no podría utilizarla.
Bridge (Puente): Desacopla una abstracción de su implementación.
Composite (Objeto compuesto): Permite tratar objetos compuestos
...