Patrones de Diseño en el Desarrollo de Software: Conceptos, Objetivos y Categorías
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en
español con un tamaño de 4,17 KB
Definición de Patrones de Diseño
Los Patrones de Diseño (Design Patterns) son la base para la búsqueda de soluciones a problemas comunes en el desarrollo de software y otros ámbitos referentes al diseño de interacción o de interfaces.
Un patrón de diseño es una solución a un problema de diseño no trivial que es efectiva (ya se resolvió el problema satisfactoriamente en ocasiones anteriores) y reusable (se puede aplicar a diferentes problemas de diseño en distintas circunstancias).
Objetivos de los Patrones
Los patrones pretenden:
- Proporcionar catálogos de elementos reusables en el diseño de sistemas de software.
- Evitar la reiteración en la búsqueda de soluciones a problemas ya conocidos y resueltos anteriormente.
- Formalizar un vocabulario común entre diseñadores.
- Estandarizar el modo en que se realiza el diseño.
- Facilitar el aprendizaje a las nuevas generaciones de diseñadores, condensando el conocimiento ya existente.
¿Qué NO pretenden los patrones?
- Imponer ciertas alternativas de diseño frente a otras.
- Eliminar la creatividad inherente al proceso de diseño.
No es obligatorio utilizar los patrones siempre, solo en el caso de tener el mismo problema o uno similar que el patrón soluciona, siempre teniendo en cuenta que en un caso particular puede no ser aplicable. Abusar o forzar el uso de los patrones puede ser un error.
Categorías de Patrones
Según la escala o nivel de abstracción, se clasifican en:
- Patrones arquitecturales: Aquellos que expresan un esquema organizativo estructural fundamental para sistemas de software.
- Patrones de diseño: Aquellos que expresan esquemas para definir estructuras de diseño (o sus relaciones) con las que construir sistemas de software.
- Idiomas (Idioms): Patrones de bajo nivel específicos para un lenguaje de programación o entorno concreto.
Describir un Patrón
Para describir un patrón se utilizan plantillas más o menos estandarizadas, de forma que se expresen uniformemente y puedan constituir efectivamente un medio de comunicación uniforme entre diseñadores. Varios autores eminentes en esta área han propuesto plantillas ligeramente distintas, si bien la mayoría definen los mismos conceptos básicos.
Plantilla GoF (Gang of Four)
Una de las plantillas más conocidas es la propuesta por el "Gang of Four". Sus secciones son:
- Nombre del patrón: Nombre estándar del patrón por el cual será reconocido en la comunidad (normalmente se expresa en inglés).
- Clasificación del patrón: Creacional, estructural o de comportamiento.
- Intención: ¿Qué problema resuelve el patrón?
- También conocido como: Otros nombres de uso común para el patrón.
- Motivación: Escenario de ejemplo para la aplicación del patrón.
- Aplicabilidad: Criterios que determinan si es adecuado usar el patrón.
- Estructura: Diagramas de clases (como UML) oportunos para describir las clases que intervienen en el patrón.
- Participantes: Enumeración y descripción de las entidades abstractas (y sus roles) que participan en el patrón.
- Colaboraciones: Explicación de las interrelaciones que se dan entre los participantes.
- Consecuencias: Consecuencias positivas y negativas en el diseño derivadas de la aplicación del patrón.
- Implementación: Técnicas o comentarios oportunos de cara a la implementación del patrón.
- Código de ejemplo: Fragmento de código fuente que muestra una implementación del patrón.
- Usos conocidos: Ejemplos de sistemas reales que usan el patrón.
- Patrones relacionados: Referencias cruzadas con otros patrones que pueden ser alternativas o complementarios.