Upload
ju-pe
View
144
Download
0
Embed Size (px)
Citation preview
Equipo Ajax
IMPLEMENTACIÓN Y ADAPTACIÓN DE
PATRONES DE DISEÑO
Universidad de OrienteNúcleo Monagas
Escuela de Ingeniería y Ciencias AplicadasÁreas de Grado: CsC
Profesor:Ing. Jonathan Vásquez
Maturín, Abril 2015
Peñalver JuanRodríguez Brimar
CONTENIDO
INTRODUCCIÓN.
DEFINICIÓN PATRONES.
OBJETIVOS DE LOS PATRONES.
VENTAJAS DE LOS PATRONES DE DISEÑO.
CLASIFICACIÓN DE LOS PATRONES.
TIPOS DE PATRONES DE DISEÑO.
CONCLUSIONES
REFERENCIAS BIBLIOGRÁFICAS.
DEFINICIÓN DE PATRONES.
Los patrón son aquellos que describe un problema que ocurre una y otra vez en nuestro entorno, y describe la esencia de la solución
a ese problema, de tal modo que pueda utilizarse esta solución un millón de veces más, sin siquiera hacerlo de la misma manera dos
veces. Christopher Alexander (1977)
IMPLEMENTACIÓN Y ADAPTACIÓN DE PATRONES DE
DISEÑO
OBJETIVO DE LOS PATRONES.
IMPLEMENTACIÓN Y ADAPTACIÓN DE PATRONES DE
DISEÑO
Reducción de tiempos
Disminución del esfuerzo de
mantenimiento
Aumentar la eficiencia
Asegurar la consistencia
Aumentar la fiabilidad
Proteger la inversión en desarrollos
VENTAJAS DE LOS PATRONES DE DISEÑO.
IMPLEMENTACIÓN Y ADAPTACIÓN DE PATRONES DE
DISEÑO
Capturan la experiencia y la hacen accesible a los no expertos. El conjunto de sus nombres
forma un vocabulario que ayuda a que los desarrolladores se comuniquen mejor
Ayudan a la gente a comprender un sistema más rápidamente cuando está documentado con los patrones que usa.
Los patrones pueden ser la base de un manual de ingeniería de software. Facilitan la reestructuración
de un sistema tanto si fue o no concebido con patrones en mente.Reutilización.
El software cambia.
CLASIFICACIÓN DE LOS PATRONES.
IMPLEMENTACIÓN Y ADAPTACIÓN DE PATRONES DE
DISEÑO
Patrones Arquitecturales
Patrones de Diseño
Patrones Elementales (idioms)
TIPOS DE PATRONES DE DISEÑO
IMPLEMENTACIÓN Y ADAPTACIÓN DE PATRONES DE
DISEÑO
Patrones a tartar:
Facade.Singleton.Mediator.
TIPOS DE PATRONES DE DISEÑO
IMPLEMENTACIÓN Y ADAPTACIÓN DE PATRONES DE
DISEÑO
FACADE
Es un patrón fundamental de diseño que provee una interfaz única para un conjunto de interfaces dentro de un subsistema. Define una interfaz de nivel superior que hace que el uso del subsistema sea mas fácil.
FACADE-Motivación
• La estructuración del sistema en subsistemas ayuda a reducir la complejidad.
• La interfaz de las clases o de un grupo de clases puede ser compleja.
FACADE-Beneficios
• Esconde la implementación de los subsistemas de los clientes.
• Promueve un acoplamiento débil entre el subsistema y sus clientes.
• Simplifica la portabilidad de los subsistemas hacia otras plataformas.
TIPOS DE PATRONES DE DISEÑO
IMPLEMENTACIÓN Y ADAPTACIÓN DE PATRONES DE
DISEÑO
Singleton
Singleton es un tipo de patrón creacional que asegura que una clase tiene una única instancia y provee un medio de acceso global a dicha instancia.
Singleton - Aplicabilidad
El patrón Singleton se utiliza cuando:
• Debe haber exactamente una instancia de una clase y ésta debe ser accesible para los clientes desde un punto de acceso conocido.
• La única instancia deba ser extensible a través de una subclase y los clientes puedan usar una instancia que extienda a la única sin modificar su código.
Singleton - Beneficios
• Acceso controlado a la instancia única
• Es una mejora a las variables globales
• Permite un número variable de instancias
Singleton - Implementación
• Asegurar una única instancia.
• Posibles subclases de la clase Singleton.
TIPOS DE PATRONES DE DISEÑO
IMPLEMENTACIÓN Y ADAPTACIÓN DE PATRONES DE
DISEÑO
Singleton - Estructura
TIPOS DE PATRONES DE DISEÑO
IMPLEMENTACIÓN Y ADAPTACIÓN DE PATRONES DE
DISEÑO
Mediator
Define a un objeto que encapsula cómo interactúan un conjunto de objetos.
Promueve bajo acoplamiento, evitando que los objetos se comuniquen entre sí explícitamente, y permite variar la interacción entre ellos de forma independiente.
Mediator - Motivación
Problema:
• Cuando muchos objetos interactúan con otros objetos, se forma una estructura compleja, con muchas conexiones entre ellos.
• Diálogos diferentes (fuentes, imprimir) tienen dependencias diferentes entre sus elementos.
• Aunque se utilicen los mismos elementos, no se pueden reutilizar las clases.
• Es engorroso adaptar las clases mediante herencia.
Reusabilidad:
• Particionar un sistema en muchos objetos la facilita, pero la proliferación de interconexiones entre ellos la reduce.
• Gran cantidad de interconexiones hace difícil que un objeto pueda trabajar sin la ayuda de otros.
• El sistema al estar distribuido entre muchos objetos puede resultar difícil cambiar su comportamiento de forma significativa.
Solución:
• Encapsular el comportamiento colectivo en un solo objeto (mediador).
• Coordinar y controlar las interacciones entre los objetos.
• Evitar a los objetos se comuniquen directamente con los otros objetos.
• Los objetos conocerán únicamente al mediador, de esta forma se reduce el número de interconexiones.
Mediator - Aplicabilidad
• Cuando un conjunto grande de objetos se comunica de una forma bien definida, pero compleja.
• En la reutilización de objetos. Existe dificultad al hacer referencia a varios objetos para mantener comunicación.
• Cuando el comportamiento de muchos objetos está distribuido entre muchas clases, adaptándolo sin mucha herencia.
Mediator - Participantes
• Mediador: define la interfaz para comunicarse con los otros objetos.
• Mediador concreto: Implementa el comportamiento cooperativo entre los Objetos. Conoce a los Objetos y los mantiene.
• Colegas: Cada colega (objeto) conoce su mediador, y usa a este para comunicarse con otros objetos.
TIPOS DE PATRONES DE DISEÑO
IMPLEMENTACIÓN Y ADAPTACIÓN DE PATRONES DE
DISEÑO
Mediator - Consecuencias
Ventajas:
• Reduce la herencia.
• Desacopla a los objetos.
• Simplifica la comunicación entre objetos.
• Abstrae como los objetos cooperan
Desventajas:
• Centraliza el control: • Cambia la complejidad en las interacciones
entre objetos por complejidad en el objeto mediador.• Puede ser muy complejo, difícil de entender y
modificar.
Mediator - Implementación
Omitir la clase abstracta Mediator:
• No es necesario crear una clase abstracta Mediador cuando las clases colega sólo trabajan con un mediador.
• El acoplamiento abstracto de dicha clase permite que los objetos trabajen con diferentes Mediador y viceversa.
Comunicación Objeto y Mediador:
• Los objetos se comunican a su mediador cuando tiene lugar un evento.
• Las clases de objetos cada vez que cambian su estado envían notificaciones al mediador.
• El mediador responde propagando los efectos de dichos eventos a los otros objetos.
Mediator – Patrones relacionados
• Si se abstrae un subsistema de objetos con protocolo unidireccional se usa Facade, provee una interfaz mas conveniente, ya que el Mediator usa un protocolo mutidireccional.
• Los colegas pueden comunicarse con el mediador mediante Observer.
Los patrones de mediator define al objeto y evalúan cómo interactúan un conjunto de objetos.
CONCLUSIONES
Los patrones de facade provee una interfaz única para un conjunto de interfaces dentro de un subsistema.
Los patrones de diseños resuelven problemas que le ocurren por experiencias pasadas.
Cada patrón describe un problema que ocurre una y otra vez en nuestro entorno
IMPLEMENTACIÓN Y ADAPTACIÓN DE PATRONES DE
DISEÑO
REFERENCIAS BIBLIOGRÁFICAS
Cáceres T., Jesús. Patrones de diseño: ejemplo de aplicación en los Generative Learning Object. Artículo en Linea. Consultado el 13 de abril de 2015. Disponible en: http://www.um.es/ead/red/M10/caceres.pdf
Mestras, J. P. (2004). Universidad Complutense Madrid. Recuperado el 12 de Abril de 2015, de Universidad Complutense Madrid: http://www.fdi.ucm.es/profesor/jpavon/poo/2.14pdoo.pdf.
González M., Madrid J., Torrealba A. Patrones de Diseño. S/F. Consultado el 13 de Abril de 2015.
Guerra S. E. Patrón Estructural Adapter (2009). Técnicas de Programación - Curso 2008/09. Artículo en línea. Consultado el 12 de abril de 2015. Disponible en: http://arantxa.ii.uam.es/~eguerra/docencia/0809/03%20Adapter.pdf
IMPLEMENTACIÓN Y ADAPTACIÓN DE PATRONES DE
DISEÑO