Fundamentos y Clasificación de los Patrones de Diseño en Software

Clasificado en Magisterio

Escrito el en español con un tamaño de 2,71 KB

¿Qué son los Patrones de Diseño?

Los patrones son una descripción de objetos y clases comunicándose entre sí, que se personalizan para resolver un problema general del diseño en un contexto particular. La descripción de la solución al problema general se realiza en términos de estructura (clases, interfaces, relaciones) y comportamiento (interacciones entre objetos).

Componentes fundamentales

  • Nombre: Se utiliza para aumentar el vocabulario del diseñador. Solo con el nombre, se hace referencia también al problema, la solución y las consecuencias. Esto permite diseñar a un mayor nivel de abstracción.
  • Problema: Describe cuándo aplicar el patrón, explicando el contexto. El problema puede ser de bajo o alto nivel. En ocasiones, presenta condiciones que deben cumplirse antes de aplicar el patrón. Entender el problema es tan importante como entender la solución, pues una buena solución a un problema incorrecto no sirve de nada.
  • Solución: Describe los elementos que componen el diseño, sus relaciones, responsabilidades y colaboraciones. Se divide en estructura y comportamiento. La solución no describe un diseño particular y concreto, ya que un patrón es un template que puede ser aplicado en diferentes situaciones comprendidas dentro del problema.
  • Consecuencias: Presenta el resultado y los trade-offs de aplicar el patrón. Toda solución tiene un “costo”. Dentro de las consecuencias también pueden haber comentarios sobre lenguajes de programación o detalles de implementación. Se deben tener en cuenta las consecuencias al momento de aplicarlo, particularmente si el “costo” es demasiado alto frente a las ventajas.

Clasificación de los Patrones

  • Patrones de Creación: Les concierne el proceso de creación de objetos.
  • Patrones de Estructura: Les concierne la composición de clases y objetos.
  • Patrones de Comportamiento: Les concierne la distribución de responsabilidades y detallan de qué forma interactuarán clases y objetos.

Ámbito de Aplicación

  • Patrones que aplican principalmente a Clases: Se centran en las relaciones entre clases y subclases, típicamente mediante herencia, por lo que son relaciones fijas (se fijan en tiempo de diseño).
  • Patrones que aplican principalmente a Objetos: Se centran en las relaciones entre objetos, las cuales pueden cambiar dinámicamente (en tiempo de ejecución).

Entradas relacionadas: