1. Inicio
  2. Tecnología
  3. Patrón de diseño

Significado de Patrón de diseño

Sustantivo masculino compuesto. «Patrón», del francés antiguo patron; «diseño», del italiano disegno. Calco del inglés design pattern.

Un patrón de diseño es una solución general y reutilizable a un problema que se repite con frecuencia en el diseño de software, descrita de forma que pueda aplicarse en distintos proyectos y lenguajes de programación.

No es código listo para copiar y pegar, sino una plantilla conceptual: describe cómo organizar las clases y sus relaciones para resolver un tipo de problema, dejando los detalles concretos a quien lo aplica.

Qué es un patrón de diseño

Muchos problemas de diseño de software se repiten de proyecto en proyecto, aunque cambien los datos concretos: garantizar que solo exista una única instancia de un objeto compartido, adaptar una interfaz para que dos partes incompatibles del sistema puedan comunicarse, o avisar a varias partes del programa cuando cambia el estado de otra. Un patrón de diseño recoge la solución probada a uno de esos problemas recurrentes, con un nombre propio que permite referirse a ella de forma breve.

Usar un patrón de diseño conocido tiene una ventaja añadida a la técnica: da a un equipo un vocabulario compartido. Decir «aquí conviene aplicar tal patrón» comunica de golpe la estructura de la solución, sin tener que explicarla desde cero cada vez.

Los estudia la ingeniería de software, dentro del diseño orientado a objetos, aunque el concepto de solución probada y con nombre propio para un problema recurrente también se aplica en otros paradigmas de programación.

Origen de la expresión patrón de diseño

«Patrón» procede del francés antiguo patron, «modelo a imitar»; «diseño» viene del italiano disegno, «dibujo, proyecto». La expresión completa traduce el inglés design pattern, que a su vez tomó la idea de «patrón» de la arquitectura, donde nombra soluciones probadas a problemas de construcción que se repiten en edificios distintos.

La idea de aplicar patrones nombrados al diseño de software se popularizó a finales del siglo XX, cuando un grupo de autores catalogó de forma sistemática varias soluciones que se repetían en programas orientados a objetos y les dio nombre propio. Desde entonces forman parte habitual del vocabulario técnico de quienes diseñan software.

Categorías de patrones de diseño

CategoríaProblema que resuelveEjemplo
CreacionalesCómo se crean los objetos, evitando depender directamente de una clase concreta.Garantizar que una configuración compartida tenga una única instancia en todo el programa.
EstructuralesCómo se organizan y combinan clases y objetos para formar estructuras más grandes.Adaptar la interfaz de un componente antiguo para que encaje con un sistema nuevo.
De comportamientoCómo se comunican y reparten responsabilidades los objetos entre sí.Avisar automáticamente a varias partes del programa cuando cambia el estado de un objeto.

Ejemplos de uso de patrón de diseño

El equipo aplicó un patrón de diseño estructural para conectar un servicio antiguo con el nuevo sistema sin reescribirlo por completo.

En la entrevista técnica le pidieron que explicara un patrón de diseño creacional y que diera un ejemplo de cuándo usarlo.

El libro de referencia sobre patrones de diseño se convirtió en material de consulta habitual entre quienes diseñan software orientado a objetos.

Usar un patrón de diseño de comportamiento permitió que distintos módulos del programa reaccionaran a un mismo evento sin depender directamente unos de otros.

Sinónimos y palabras relacionadas

Sinónimos: no tiene sinónimos exactos en este sentido técnico.

Antónimos: antipatrón (una solución habitual pero problemática a un problema recurrente).

No es lo mismo que:

Preguntas frecuentes sobre patrón de diseño

¿Para qué sirve un patrón de diseño?

Sirve para resolver un problema de diseño que se repite con frecuencia, aplicando una solución ya probada en lugar de improvisar una nueva cada vez, y para dar a un equipo un vocabulario compartido con el que hablar de la estructura del código.

¿Un patrón de diseño es código que se puede copiar directamente?

No. Es una plantilla conceptual que describe cómo organizar clases y relaciones para resolver un problema; cada proyecto tiene que adaptar esa idea general a su propio código y a su propio lenguaje de programación.

¿Es obligatorio usar patrones de diseño?

No, y aplicarlos sin necesidad puede complicar un código que sería más sencillo sin ellos. Conviene usarlos cuando el problema que resuelven aparece realmente, no como norma general en cualquier situación.

Ver también