Patrones de Diseño (I): Definición y Clasificación


Estoy seguro que has escuchado más de una vez el término Patrón de Diseño (Design Pattern).  De lo que no estoy tan seguro es de que todos sepamos bien a qué se refiere ese término.  Así que aclaremos...


¿Qué es un Patrón de Diseño?

En resumen, un Patrón de Diseño es una solución típica para un problema común.  Dicho así, no suena tan impactante, ¿cierto?

Cada Patrón es como una guía, una plantilla, una herramienta reutilizable a aplicar ante un problema de un cierto tipo.  Así como siempre usamos un martillo para clavar un clavo, o unas tijeras para cortar tela, de forma similar podemos identificar fácilmente qué herramienta general usar para los problemas más comúnes de tecnología, y a partir de ahí, personalizar la herramienta hasta obtener un resultado óptimo.

Nota que un Patrón no es un trozo de código específico, o un algoritmo, sino un concepto general, por lo que no puedes simplemente copiar y pegar el Patrón en tu código.  Pero sí puedes usar esa guía para apoyarte en la creación de tu código.


Beneficios de los Patrones de Diseño

Puedes pasar toda tu vida profesional sin haber leído, aprendido, o aplicado, algún Patrón, de la misma forma que puedes pasarla sin usar un martillo ni una sola vez.  Pero sufrirás clavando cualquier clavo que te consigas.  Y ¿por qué querríamos que eso pasara?

Los Patrones de Diseño son soluciones probadas y aprobadas que te ayudarán a estar seguro de la validez de lo que estás implementando.  Te ahorrarán tiempo y esfuerzo, dado que podrás recorrer una senda ya abierta por otros pies, en lugar de estar sufriendo abriéndote paso por terreno agreste.  ¿Por qué reinventar el agua tibia?

Además, hablar en lenguaje de Patrones te permitirá comunicarte de forma más eficiente.  Cuando digas "usaré un Adapter" o "lo mejor es usar un Singleton", todo el equipo te entenderá... ¡o debería hacerlo!


Clasificación de los Patrones de Diseño

En la actualidad hay 23 Patrones de Diseño, divididos en tres categorías: 

  • Patrones creacionales (5 Patrones), que proveen mecanismos de creación de objetos que aumentan la flexibilidad y la reutilización del código existente.
  • Patrones estructurales (7 Patrones), que explican cómo componer clases y objetos en estructuras más grandes, mientras se mantienen eficientes y flexibles.
  • Patrones de comportamiento (11 Patrones), que se encargan de la comunicación entre objetos, así como asignación de responsabilidades.


Continuará...

Hoy pararemos este artículo aquí.  Pronto publicaré un artículo para cada tipo de Patrón, y con esa trilogía (¿de la que este artículo es la precuela? XD) cubriremos los Patrones existentes.

¡Escríbanme sus comentarios y prometo responder!

-- Gorka Siverio


No hay comentarios:

Publicar un comentario