Patrones de diseñoGRUPO 1
• HAEBERLI, JULIÁN• LARA, GUISELL• MEDINA, DIEGO• SEGURA, AYRTON• SORIA, NICOLÁS
Agenda• Por favor silenciemos los celulares
• Introducción
• Reseña histórica
• Clasificación
• Propiedades
• Ejemplo
• Beneficios – Desventajas
• Anti-patrones
• Preguntas
Introducción• Tratan los problemas del diseño de software que se
repiten y que se presentan en situaciones particulares, con el fin de proponer soluciones a ellas.
• Son soluciones exitosas a problemas comunes.
Reseña Histórica
La importancia de las relaciones en los diseños de orientación a objetos.
Identificación de situaciones comunes.
Necesidad de reciclar “ideas” no “código”.
Identificado por la banda de los cuatro.
Gang of Four (GOF)
Design Patterns (1994)
Definición
Es “Una solución (probada) a un problema en un determinado contexto” (Erich Gamma)
Detallada:Es una solución probada que se puede aplicar con
éxito a un determinado tipo de problemas que aparecen repetidamente en el desarrollo de sistemas software.
Creacionales:Definen la mejor manera en que un objeto es instanciado. El objetivo es abstraer el proceso de instanciación y ocultar los detalles de cómo los objetos son creados o inicializados.
Estructurales: Permiten crear grupos de objetos para ayudarnos a realizar tareas complejas.
Comportamiento: Permiten definir la comunicación entre los objetos del sistema y el flujo de la información entre los mismos.
Clasificación
Propiedades
1.Nombre.
2.Problema: descripción de cuándo utilizarlo.
3.Solución.
4.Consecuencias (buenas y malas).
Singleton o Singular (Creacional)Ejemplo:
1. Nombre: Singular
2. Problema: Necesidad de una sola instancia de una clase. Ejemplo: un calendario.
Singleton o Singular (Creacional)Ejemplo:
3. Solución: Limitar el número de instancias de una clase verificando que no esté instanciada previamente.
4. Consecuencias: • Acceso global y controlado a única
instancia.• Es una mejora a las variables globales:
los nombres de las variables globales no siguen un estándar para su acceso.
Beneficios
• Son independientes de los lenguajes.
• Efectividad comprobada en la resolución de problemas similares en ocasiones anteriores.
• Estandarizan el diseño.
• Ahorro de tiempo.
Desventajas
• El uso de un patrón no se refleja claramente en el código.
• Los patrones suponen cierta sobrecarga de trabajo a la hora de implementar:
Se usan más clases de las estrictamente necesarias.
¿Qué NO es un patrón de diseño?
• No es garantía de un sistema bien diseñado.
• Es un buen punto de partida para pensar una solución, no la solución.
• No reemplaza al diseñador.
Anti-patrones
• Son ejemplos bien documentados de malas soluciones para problemas.
• El estudio formal de errores que se repiten permite al desarrollador reconocerlos más fácilmente.
Conclusión
• Los patrones de diseño son muy útiles. Es por ello que se los conoce como las mejores prácticas en el desarrollo y construcción de software.
¡Gracias por su atención!¿PREGUNTAS?