/Tecnología

Patrones de diseño

Como ingeniero los patrones de diseño de software pueden ser un tema que olvides o no tengas muy presente debido a muchos factores, sin embargo es un tema que hay que refrescar cada cierto tiempo por qué puede ayudarte mucho a mejorar tu código, es como cuando lees un buen libro, vez una buena película o un show de comedia, cada vez encuentras cosas que no percibiste antes y los conceptos toman más fuerza.

Esta seríe de posts que subiré daré explicaciones poco ortodoxas y llenas de ejemplos de la vida diaria; para mi sería muy fácil ir a Wikipedia y copiar las definiciones, sin embargo me arriesgaré a darte una vista diferente para que estos conceptos estén más presentes en nuestra mente y también servirá para que en el futuro no tengamos bochornos:

  • En entrevistas de trabajo
  • Resolviendo dudas
  • O peor, creando código ineficiente

Entonces aquí empezamos:

Qué son los patrones de diseño

El desarrollo de software ha enfrentado muchos problemas, muchos de ellos fueron enfrentados por primera vez, y daba miedo, había poca memoria, poco almacenamiento, equipos muy pesados y grandes, y el procesamiento era mucho mucho más lento, sin embargo algo pasó, muchos problemas empezaron a ser muy repetitivos, tanto que los programadores empezaron a reflexionar cómo resolverlo de la manera más óptima y elegante posible.

Entonces alguien dio con una solución muy buena, una solución que podía aplicarse en problemas muy similares; y así empezaron a emerger soluciones para varios de los problemas detectados que podían ser usadas en muchos contextos, estas soluciones se empezaron a estudiar y categorizar, además de los problemas, y a ese cúmulo de soluciones se les nombró Patrones de diseño.

Entonces un patrón de diseño es una solución para un problema dentro de un contexto.

Categorías

Los patrones de diseño se empezaron a estudiar y cómo las cosas sueltas son difíciles de entender o analizar se empezaron agrupar, algo como lo que hacemos con los animales al decir que son canes, felinos, reptiles, etc.

Las categorías para los patrones de diseño son:

  • Creacionales: Son soluciones cuando necesitas crear información, si nos ponemos más técnicos, cuando creamos objetos, imagina bebidas, hay muchas formas de crearlas, hay formas para crear té, refrescos, cocteles, y demás en masa.
  • Estructurales: Son soluciones que tratan sobre como distintas entidades (objetos poniéndonos técnicos) se van a relacionar para juntos crear algo más poderoso, flexible y eficiente, como cuando los Power Rangers se unían para hacer un Robot Gigante.
  • Comportamiento: Son soluciones que tratan sobre como mejorar la comunicación entre varios elementos (objetos para ponernos técnicos) en un sistema, o sea, como van a emitir mensajes, como van a reaccionar a ellos y cómo va a ser la forma en que esa información llegue, sería como cuando un YouTuber de tu preferencia necesita que sepas que subió un video, puede solucionarlo de varias maneras, ya sea pagando publicidad, mandando mensajes directos a cada usuario que pueda o contando con que tiene usuarios subscritos a los que les llegará la información; puede que una opción sea más optima que otra de acuerdo a lo que necesite, pero el problema es de comunicación, recepción y reacción.

Hasta aquí este primer post, prundizaré en cada categoría y agregaré updates a este post para que sea más cómodo consultar la información.

Yoshua Díaz

Yoshua Díaz

FullStack Dev | Escritor | Creativo | Comediante | Introvertido Excéntrico

Leer más