ScholarGate
Asistente

Patrones de Diseño de Software

Los patrones de diseño de software son soluciones nombradas y reutilizables para problemas de diseño que se repiten con frecuencia, capturando la práctica experta en una forma que puede ser comunicada, enseñada y aplicada a través de diferentes sistemas.

Encontrar tema con PaperMindPróximamenteFind papers & topics
Tools & resources
Descargar diapositivas
Learn & explore
VídeoPróximamente

Definition

Un patrón de diseño es una descripción general y reutilizable de una solución a un problema de diseño recurrente dentro de un contexto dado, expresada en términos de los elementos participantes, sus relaciones y las compensaciones que implica la solución.

Scope

Este tema abarca los patrones clásicos creacionales, estructurales y de comportamiento del diseño orientado a objetos; la estructura de un patrón (nombre, problema, solución, consecuencias); catálogos de patrones y lenguajes de patrones; patrones empresariales y de concurrencia; y el uso apropiado e inapropiado de patrones, incluyendo el riesgo de la sobreingeniería.

Core questions

  • ¿Qué problemas de diseño recurrentes abordan los patrones estándar?
  • ¿Cómo se distinguen los patrones creacionales, estructurales y de comportamiento?
  • ¿Cómo documenta un patrón su problema, solución y consecuencias?
  • ¿Cuándo ayuda la aplicación de un patrón y cuándo añade una complejidad innecesaria?

Key theories

Patrones creacionales, estructurales y de comportamiento
El catálogo de la Gang of Four organiza los patrones por propósito: los patrones creacionales abstraen la instanciación de objetos, los patrones estructurales componen objetos en estructuras más grandes y los patrones de comportamiento asignan responsabilidades y gestionan la comunicación.
Los patrones como experiencia de diseño capturada
Los patrones codifican soluciones expertas y proporcionan un vocabulario compartido, elevando el nivel del discurso de diseño; un lenguaje de patrones relaciona los patrones de modo que la resolución de un problema conduce al siguiente, guiando el diseño general.

Clinical relevance

Los patrones mejoran la comunicación y la calidad del diseño al reutilizar estructuras probadas y proporcionar a los equipos un vocabulario común; sin embargo, aplicados sin criterio, pueden introducir indirectas y complejidad, por lo que su valor depende de la adecuación del patrón al problema real.

History

Inspirada en los lenguajes de patrones arquitectónicos de Christopher Alexander, la comunidad del software formalizó los patrones de diseño con el catálogo de la Gang of Four de 1994; trabajos posteriores extendieron los patrones a la arquitectura, la concurrencia y las aplicaciones empresariales, convirtiéndolos en un pilar de la educación en diseño.

Debates

Los patrones como sabiduría versus un síntoma de deficiencia del lenguaje
Algunos argumentan que la necesidad de ciertos patrones revela características del lenguaje ausentes, y que el uso excesivo de patrones conduce a la sobreingeniería; otros ven los patrones como un vocabulario de diseño duradero e independiente de cualquier lenguaje.

Key figures

  • Erich Gamma
  • Richard Helm
  • Ralph Johnson
  • John Vlissides
  • Martin Fowler

Related topics

Seminal works

  • gamma1994
  • buschmann1996
  • fowler2002

Frequently asked questions

¿Los patrones de diseño están ligados a un lenguaje de programación específico?
Los patrones clásicos se describen en términos orientados a objetos y se ilustran en lenguajes particulares, pero los conceptos son independientes del lenguaje; la forma en que se realiza un patrón varía, y algunos patrones se vuelven triviales o innecesarios en lenguajes con funciones de primera clase u otras características.
¿Puede ser perjudicial el uso excesivo de patrones de diseño?
Sí. Forzar patrones donde una solución más simple es suficiente añade indirectas y carga cognitiva; los patrones deben aplicarse porque resuelven un problema recurrente real en el diseño, no como un estilo predeterminado.

Methods for this concept

Related concepts