ENES

Patrón de diseño

Una solución con nombre y reutilizable para un problema de diseño que se repite.

El patrón observer: un sujeto avisa a tres observadores suscriptos cuando cambia, dibujado como un plano reutilizable

Un patrón de diseño es una forma probada de estructurar código para un problema que se repite, descripta en términos generales para que la adaptes a tu propio programa. No es una librería que instalás ni código que pegás: es una forma, con un nombre, una situación típica en la que ayuda y sus contras. La idea se tomó de la arquitectura y se popularizó en 1994 con el libro Design Patterns, cuyos cuatro autores son conocidos como la Gang of Four (la "banda de los cuatro"). Ese libro catalogó 23 patrones para programación orientada a objetos.

Algunos ejemplos. El patrón observer permite que un objeto avise a muchos otros cuando algo cambia, sin saber quiénes son: está detrás de cada "suscribirse" y de cada listener de eventos, desde una planilla que actualiza sus gráficos hasta una interfaz que reacciona a un clic. El patrón strategy cambia un algoritmo por otro detrás de la misma interfaz, como elegir entre distintas formas de calcular un envío. El adapter envuelve un componente con una interfaz incompatible para que encaje, como un adaptador de enchufe de viaje. El factory centraliza cómo se crean los objetos, y el singleton garantiza que haya una sola instancia de algo.

Su mayor valor es el vocabulario compartido. Decir "poné un adapter delante de la API vieja de pagos" transmite un diseño entero en pocas palabras durante un code review. Los patrones además van más allá de las clases: los reintentos con espera creciente, los circuit breakers, publicar y suscribirse, y los muchos patrones de microservicios y de arquitectura en la nube siguen la misma idea. El riesgo es el contrario: forzar patrones donde alcanzaba con una función simple agrega capas que nadie necesita. Un patrón que trae problemas una y otra vez se llama antipatrón.

Para quedarse

Para seguir leyendo

Términos relacionados

Más de Software