Patrón de diseño - Design pattern

Un patrón de diseño es la forma reutilizable de una solución a un problema de diseño. La idea fue presentada por el arquitecto Christopher Alexander y ha sido adaptada para varias otras disciplinas, en particular la ingeniería de software .

Detalles

Una colección organizada de patrones de diseño que se relacionan con un campo en particular se llama lenguaje de patrones . Este lenguaje ofrece una terminología común para discutir las situaciones a las que se enfrentan los diseñadores.

Los elementos de este lenguaje son entidades llamadas patrones. Cada patrón describe un problema que ocurre una y otra vez en nuestro entorno, y luego describe el núcleo de la solución a ese problema, de tal manera que puede usar esta solución un millón de veces, sin tener que hacerlo de la misma manera dos veces. .

-  Christopher Alexander, un lenguaje de patrones

Documentar un patrón requiere explicar por qué una situación particular causa problemas y cómo los componentes del patrón se relacionan entre sí para dar la solución. Christopher Alexander describe los problemas comunes de diseño como resultado de "fuerzas en conflicto", como el conflicto entre querer que una habitación esté soleada y no se sobrecaliente en las tardes de verano. Un patrón no le diría al diseñador cuántas ventanas colocar en la habitación; en cambio, propondría un conjunto de valores para guiar al diseñador hacia una decisión que sea mejor para su aplicación particular. Alexander, por ejemplo, sugiere que se deben incluir suficientes ventanas para dirigir la luz alrededor de la habitación. Considera que esta es una buena solución porque cree que aumenta el disfrute de la habitación por parte de sus ocupantes. Otros autores pueden llegar a conclusiones diferentes si dan mayor valor a los costos de calefacción o de materiales. Estos valores, utilizados por el autor del patrón para determinar qué solución es "mejor", también deben documentarse dentro del patrón.

La documentación de patrones también debe explicar cuándo es aplicable. Dado que dos casas pueden ser muy diferentes entre sí, un patrón de diseño para casas debe ser lo suficientemente amplio para aplicarse a ambas, pero no tan vago que no ayude al diseñador a tomar decisiones. La gama de situaciones en las que se puede utilizar un patrón se denomina contexto. Algunos ejemplos pueden ser "todas las casas", "todas las casas de dos pisos" o "todos los lugares donde la gente pasa el tiempo".

Por ejemplo, en el trabajo de Christopher Alexander, las paradas de autobús y las salas de espera en un centro quirúrgico están dentro del contexto del patrón "UN LUGAR PARA ESPERAR".

Ejemplos de

Los modelos comerciales también tienen patrones de diseño. Ver modelo de negocio § Ejemplos .

Ver también

Referencias

Otras lecturas

  • Erl, Thomas (2009). Patrones de diseño SOA . Serie de computación orientada a servicios de Prentice Hall de Thomas Erl. Upper Saddle River, Nueva Jersey: Prentice Hall . ISBN 978-0-13-613516-6. OCLC  156832597 .
  • Leitner, Helmut (2015). Teoría de patrones: Introducción y perspectivas sobre las huellas de Christopher Alexander . Serie de investigación de patrones. 1 . Graz: Helmut Leitner, HLS Software. ISBN 978-1-5056-3743-4. OCLC  913795677 .
  • Pree, Wolfgang (1995). Patrones de diseño para el desarrollo de software orientado a objetos . Libros de ACM Press. Wokingham, Inglaterra; Reading, Mass .: Addison-Wesley . ISBN 0201422948. OCLC  31291883 .
  • Schmidt, Douglas C .; Buschmann, Frank ; Henney, Kevlin (2007). Arquitectura de software orientada a patrones: sobre patrones y lenguajes de patrones . Serie Wiley en patrones de diseño de software. 5 . Chichester, Reino Unido; Nueva York: Wiley . ISBN 9780471486480. OCLC  62532759 .
  • Tidwell, Jenifer; Brewer, Charles; Valencia, Aynne (2020) [2005]. Designing Interfaces: Patterns For Effective Interaction Design (3ª ed.). Sebastopol, CA: O'Reilly . ISBN 9781492051961. OCLC  1138701080 . Presenta soluciones a problemas comunes de diseño de IU como una colección de patrones, cada uno con ejemplos concretos, recomendaciones y advertencias.