En este artículo vamos a ver qué son y para qué me sirven los patrones de diseño. Así como también, cómo están compuestos y saber cuales utilizar.
Antes de ver cuáles son los que más se utilizan y cómo elijo uno por sobre el otro, vamos a comenzar con lo básico. Allá vamos!
¿Qué es un patrón de diseño?
Si la forma de solucionar un problema se puede extraer, explicar y reutilizar en múltiples ámbitos, entonces nos encontramos ante un patrón de diseño de software. Existen distintos tipos dependiendo del tipo de problema que resuelven y los veremos más delante.
Cabe destacar que los patrones de diseño no dependen de ningún lenguaje y no está asociado de ninguna manera al tamaño del proyecto.
¿Para qué sirve un patrón de diseño?
Básicamente un patrón de diseño te sirve para:
- Ahorrar tiempo: Al no buscar siempre soluciones a problemas ya resueltos se ahorra mucho tiempo.
- Código fiable: Los patrones de diseño son estructuras probadas por muchos desarrolladores por muchos años, por lo que si se elige el patrón adecuado se puede estar seguro que la solución es una de las mejores que se pueda encontrar.
- Establecer un lenguaje común: En el caso de que los demás conozcan el patrón utilizado esto te permitirá explicar a otras personas (hayan visto el código o no) la solución que elegiste.
¿Cuáles son los elementos que componen a un patrón de diseño?
Un patrón de diseño está definido por 4 elementos:
- Nombre: El nombre debe ser descriptivo para saber de que se está hablando.
- Problema: Describe el problema general o la situación a resolver.
- Solución: Describe la solución general a implementar.
- Consecuencias: Describe las ventajas y desventajas de utilizarlo.
Tipos de patrones de diseño
Los patrones de diseño se dividen en distintos grupos dependiendo de la problemática que resuelvan. Estos pueden ser:
- Creacionales: Facilitan la creación de nuevos objetos encapsulando el proceso.
- Estructurales: Especifican la forma en que las clases se relacionan con otras.
- De comportamiento: Gestionan algoritmos, relaciones y responsabilidades entre objetos.
Conclusión
Hay que dejar de lado los conceptos como "los patrones de diseño son siempre la mejor solución". Los patrones de diseño son una solución general para problemas conocidos pero se adaptan a contextos específicos. Deberían ser usados cuando la situación lo requiera y dicha implementación mantiene el código más simple.
Entonces, ¿cómo sé cuando usar un patrón de diseño? Únicamente cuando dicho patrón soluciona la problemática que tenemos y si el código queda más simple de esa manera.
Para no buscar soluciones que ya están pensadas y repensadas, es conveniente conocer los diferentes patrones de diseño que existen. Pero tranquilos, con tener un listado de los nombres y la problemática que resuelven es suficiente. A la hora de tener un problema similar, se ve como se va a implementar. A la larga, la implementación de cada patrón la vamos a ir adquiriendo con la práctica.
Dicho esto, concluyo este artículo con esa idea y dejo abierto el camino a una nueva entrega de patrones de diseño. En ellas vamos a indagar en los distintos tipos de patrones viendo los más conocidos y algunos ejemplos.
Saludos!