Patrones de diseño GRUPO 1 HAEBERLI, JULIÁN LARA, GUISELL MEDINA, DIEGO SEGURA, AYRTON SORIA,...

Post on 24-Jan-2016

217 views 0 download

Transcript of Patrones de diseño GRUPO 1 HAEBERLI, JULIÁN LARA, GUISELL MEDINA, DIEGO SEGURA, AYRTON SORIA,...

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?