Los patrones de diseño resuelven problemas comunes en el diseño de software. El documento describe tres patrones de diseño: Facade, Singleton y Mediator. Facade provee una interfaz única para un subsistema. Singleton asegura que una clase tenga una única instancia accesible globalmente. Mediator define un objeto que encapsula la interacción entre un conjunto de objetos.
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
Patrones de diseño
1. Universidad de Oriente
Núcleo Monagas
Escuela de Ingeniería y Ciencias Aplicadas
Áreas de Grado: CsC
Profesor:
Ing. Jonathan Vásquez
Maturín, Abril 2015
2.
3. 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)
4. OBJETIVO DE LOS PATRONES.
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
5. VENTAJAS DE LOS 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.
6. CLASIFICACIÓN DE LOS PATRONES.
Patrones Arquitecturales
Patrones de Diseño
Patrones Elementales
(idioms)
7. TIPOS DE PATRONES DE DISEÑO
Patrones a tartar:
Facade.
Singleton.
Mediator.
8. TIPOS 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.
11. TIPOS 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.
13. TIPOS 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.
14. TIPOS 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.
16. 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
17. 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