Un patrón de diseño es la forma reutilizable de una solución a un problema de diseño. La idea fue introducida por el arquitecto Christopher Alexander [1] y ha sido adaptada para varias otras disciplinas, en particular la ingeniería de software . [2]
Detalles
Una colección organizada de patrones de diseño relacionados con un campo en particular se denomina lenguaje de patrones . Este lenguaje proporciona una terminología común para analizar 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 se repite una y otra vez en nuestro entorno y, a continuación, describe el núcleo de la solución a ese problema, de tal forma que se puede utilizar esta solución un millón de veces sin tener que hacerlo dos veces de la misma manera.
— Christopher Alexander, Un lenguaje de patrones [1]
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. [3] Christopher Alexander describe los problemas de diseño comunes como el resultado de "fuerzas en conflicto", como el conflicto entre querer que una habitación sea soleada y no querer que no se caliente demasiado en las tardes de verano. Un patrón no le diría al diseñador cuántas ventanas poner 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 incluyan suficientes ventanas para dirigir la luz por toda 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 podrían llegar a conclusiones diferentes, si dan mayor valor a los costos de calefacción o los costos de material. Estos valores, utilizados por el autor del patrón para determinar qué solución es "mejor", también deben estar documentados 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 como para aplicarse a ambas, pero no tan vago como para que no ayude al diseñador a tomar decisiones. La variedad de situaciones en las que se puede utilizar un patrón se denomina contexto. Algunos ejemplos podrían ser "todas las casas", "todas las casas de dos pisos" o "todos los lugares donde la gente pasa el tiempo".
Por ejemplo, en la obra de Christopher Alexander, las paradas de autobús y las salas de espera de un centro quirúrgico están dentro del contexto del patrón "UN LUGAR PARA ESPERAR".
Ejemplos
- Patrón de diseño de software , en diseño de software
- Patrón arquitectónico , para arquitectura de software
- Patrón de diseño de interacción , utilizado en el diseño de interacción/interacción hombre-computadora
- Patrones pedagógicos , en la enseñanza
- Jardinería de patrones , en jardinería
Los modelos de negocio también tienen patrones de diseño. [4] Véase Modelo de negocio § Ejemplos .
Véase también
Referencias
- ^ ab Alexander, Christopher (1977). Un lenguaje de patrones: ciudades, edificios, construcción . Serie del Centro de Estructura Ambiental. Vol. 2. Nueva York: Oxford University Press . ISBN 0-19-501919-9.OCLC 3132495 .
- ^ Gamma, Erich; Helm, Richard; Johnson, Ralph; Vlissides, John (1994). Patrones de diseño: elementos de software orientado a objetos reutilizable . Serie de informática profesional de Addison-Wesley. Reading, Mass.: Addison-Wesley . ISBN 0-201-63361-2.OCLC 31171684 .El libro " La banda de los cuatro ".
- ^ Maioriello, James (2002-10-02). "¿Qué son los patrones de diseño y los necesito?". developer.com . Consultado el 21 de marzo de 2011 .
- ^ Por ejemplo: Mettler, Tobias; Eurich, Markus (junio de 2012). "Un enfoque basado en 'patrones de diseño' para analizar modelos de negocio de salud electrónica". Política sanitaria y tecnología . 1 (2): 77–85. doi :10.1016/j.hlpt.2012.04.005.
Lectura adicional
- Erl, Thomas (2009). Patrones de diseño SOA . Serie de computación orientada a servicios de Prentice Hall de Thomas Erl. Upper Saddle River, NJ: 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. Vol. 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 de Wiley sobre patrones de diseño de software. Vol. 5. Chichester, Reino Unido; Nueva York: Wiley . ISBN 9780471486480.OCLC 62532759 .
- Tidwell, Jenifer; Brewer, Charles; Valencia, Aynne (2020) [2005]. Diseño de interfaces: patrones para un diseño de interacción eficaz (3.ª ed.). Sebastopol, CA: O'Reilly . ISBN 9781492051961. OCLC 1138701080.
Presenta soluciones a problemas comunes de diseño de UI como una colección de patrones, cada uno con ejemplos concretos, recomendaciones y advertencias.