Según Christopher Alexander “cada patrón describe
un describe un problema que
ocurre una y otra vez en nuestro entorno, así como la solución a ese problema de tal modo
que se pueda aplicar esta solución un
millón de veces , sin hacer lo mismo dos veces “ a la vez que propone una
solución idónea aplicable a dicho problema.
4 elementos esenciales:
- Un nombre de patrón permite describir, en una o dos palabras, un problema de diseño junto con sus soluciones y consecuencias.
- Problema describe cuando aplicar el patrón. Explica el problema y su contexto.
- La solución describe los elementos que construyen en el diseño, sus relaciones, responsabilidades y colaboraciones.
- Las consecuencias explican los resultados de aplicar el patrón, sus costes y beneficios.
Los patrones de diseño
de los cuales se clasifican como se
muestra a continuación:
·
Patrones Creacionales: Inicialización y configuración de
objetos.
Fábrica Abstracta ( Abstract Factory )
|
Método de
Fabricación ( Factory Method )
|
Prototipado ( Prototype )
|
Singleton
|
MVC ( Model View Controler )
|
·
Patrones Estructurales: Separan la interfaz de la
implementación. Se ocupan de cómo las clases y objetos se agrupan, para formar
estructuras más grandes.
Adaptador (Adapter)
|
Puente (Bridge)
|
Objeto Compuesto (Composite)
|
Envoltorio (Decorator
|
Fachada (Facade)
Peso Ligero (Flyweight)
|
Apoderado (Proxy)
|
·
Patrones de Comportamiento: Más que describir objetos o clases,
describen la comunicación entre ellos.
Objetivos de los patrones.
Los patrones de
diseño pretenden:
- Proporcionar catálogos de elementos reusables en el diseño de sistemas software.
- Evitar la reiteración en la búsqueda de soluciones a problemas ya conocidos y solucionados anteriormente.
- Formalizar un vocabulario común entre diseñadores.
- Estandarizar el modo en que se realiza el diseño.
- Facilitar el aprendizaje de las nuevas generaciones de diseñadores condensando conocimiento ya existente.
Asimismo, no
pretenden:
- Imponer ciertas alternativas de diseño frente a otras.
- Eliminar la creatividad inherente al proceso de diseño.