Modelo Iterativo Incremental

Patrones De Diseño

Hoy me gustaría comenzar una serie sobre patrones de diseño. Destacar que hay que tener unos ciertos conocimientos para seguir esta serie, aunque si te estas iniciando en el mundo de la programación sería conveniente que te acostumbras a seguir estas técnicas, ya que es lo que diferencia a un programador bueno de uno normal. Por si alguien no me cree, diré que Google a la hora de elegir a sus trabajadores pone un examen en el que hay que solucionar cierto problema. La solución se puede obtener sin usar patrones de diseño pero se obtiene mucho antes, y de forma más sencilla utilizando patrones de diseño. No hace falta que diga que los que no usan patrones de diseño aunque la solución esté bien son descartados automáticamente.

¿Qué son los patrones de diseño?

Patrones De Diseño, Patrón Factoría Abstracta

Patrón Factoría Abstracta

Según el libro Design Patterns: Elements of Reusable Object-Oriented Software (Erich Gamma, Richard Helm, Ralph Johnson y John Vlissides) los patrones de diseño son descripciones de cómo interconectar clases y objetos de forma que puedan resolver un problema general de diseño dentro de un contexto determinado. Dicho de otra forma, son soluciones probadas y beneficiosas a problemas recurrentes que aparecen durante el diseño de un producto software. Existen tres tipos de patrones:

  • Creacionales: Relativos a problemas relacionados con la creación de objetos. Por ejemplo el Factoría Abstracta.
  • Estructurales: Relativos a problemas relacionados con las relaciones y dependencias estáticas entre clases y objetos. Por ejemplo el Peso Mosca.
  • De comportamiento:  Relativos a problemas relacionados el comportamiento de clases y objetos en tiempo de ejecución. Por ejemplo el Estrategia.

¿Por qué son importantes los patrones de diseño?

Como ya he dicho antes, los patrones de diseño ayudan a resolver fácilmente ciertos problemas que se presentan a menudo en el diseño de software. Muchas veces podría parecer contraproducente el uso de los patrones ya que aumenta el número de clases y de métodos de nuestro diseño. Sin embargo está probado el beneficio que aporta el patrón a nuestro diseño (siempre que se usen los patrones adecuadamente) y por tanto existen más pros que contras. Por ejemplo, el patrón Estrategia, utilizado cuando tenemos varias versiones de un mismo método, hace que tengamos que añadir una clase por cada versión del método, pero también provoca que existan menos estructuras de decisión y por tanto disminuye la complejidad de nuestro programa. Por tanto podemos decir que los patrones de diseño son importantes porque nos ayudan a construir software más fácilmente y de mayor calidad.

Estructura de un patrón

Cada artículo que escriba describiendo un patrón de diseño tendrá la siguiente estructura (la misma que se usa en el libro Design Patterns: Elements of Reusable Object-Oriented Software):

  • Propósito: Lo que trata de hacer el patrón o en lo que ayuda.
  • Motivación: Una descripción de un problema a modo de ejemplo y como el patrón ayuda a resolverlo.
  • Aplicabilidad: Cuando usar el patrón.
  • Estructura: Normalmente será un diagrama de clases que muestre la estructura básica del patrón.
  • Consecuencias: Los pros y contras que tiene el patrón.
  • Usos conocidos: Ejemplo de un problema que se ha resuelto usando el patrón.

Hasta aquí este artículo de introducción a los patrones de diseño. El siguiente artículo de la serie tratará sobre el patrón Singleton.

Dejar un comentario

Uso de cookies

Este sitio web utiliza cookies para que usted tenga una mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información sobre las cookies utilizadas.plugin cookies

ACEPTAR
Aviso de cookies