La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

1 Diseño de Patrones Agustín J. González ELO329. Generalidades En Electrónica y en la vida en común usar soluciones probadas para problemas similares.

Presentaciones similares


Presentación del tema: "1 Diseño de Patrones Agustín J. González ELO329. Generalidades En Electrónica y en la vida en común usar soluciones probadas para problemas similares."— Transcripción de la presentación:

1 1 Diseño de Patrones Agustín J. González ELO329

2 Generalidades En Electrónica y en la vida en común usar soluciones probadas para problemas similares. Ej.: amplificador tipo A, filtro pasa bajos, etc. Es razonable rediseñar uno desde cero? Moraleja: Variaciones de los mismos problemas aparecen en diferentes sistemas. => Una solución -un patrón- puede ser usado para resolver tales problemas. Un patrón de diseño es una manera de reusar conocimiento abstracto sobre un problema y su solución. Patrones son instrumentos para permitir a los programadores compartir conocimiento sobre sus diseños.

3 Generalidades (cont.)‏ Un patrón es una descripción del problema y la esencia de su solución. Un patrón debería ser suficientemente abstracto para ser reusado en diferentes situaciones. Los patrones generalmente usan características de los lenguajes OO tales como herencia y polimorfismo. En un sentido más amplio, podemos considerar que la recursión, la idea de “dividir para conquistar”, son patrones para en algoritmos.

4 Elementos de un Patrón Nombre Un identificador apropiado, con buen significado para el patrón Descripción del problema Descripción de la solución No es un diseño concreto pero una platilla para el diseño de la solución que puede ser instanciado de diferentes maneras. Consecuencias El resultado y los efectos de su aplicación.

5 Tipos de patrones De creación Abstract Factory Estructurales Adapter Façade Proxy De comportamiento Observer Mediator Esta idea tiene detractores, por ejemplo existe al patrón Singleton; pero algunos opinan que es un anti-patrón por considerarlo un eufemismo para una variable global.

6 Patterns by Example: Vistas múltiples gracias al Observador (Observer)‏ A=10% B=40% C=30% D=20% Application data A B C D ADCB Relative Percentages Y10 40 30 20 X15 35 35 15 Z10 40 30 20 A B C D Change notification Requests, modifications

7 Patrón Observador Nombre: Observer Descripción Separa el despliegue del estado de un objeto del objeto mismo. Descripción del problema Es usado cuando múltiples vistas del estado son requeridas. Descripción de la solución Ver lámina con descripción UML Consecuencias Optimizaciones para mejorar la eficiencia del despliegue son poco prácticas.

8 El Patrón Observador Subject attach (Observer)‏ detach (Observer)‏ Notify ()‏ Observer Update()‏ Concrete Observer Update()‏ observerState Concrete Subject GetState()‏ SetState()‏ subjectState observers subject For all x in observers{ x  Update(); } observerState= subject  getState();

9 Patrón Observador: explicación Subject: es la clase provee los mecanismos para para agregar o eliminar observadores del cambio que deseamos monitorizar. Contiene los métodos: Attach – Agrega un nuevo observador al sujeto. Detach – Remueve un observador existente. Notify – Notifica a cada observador llamando el método update() sobre cada observador, cuando un cambio ocurre en el sujeto. ConcreteSubject: Es la clase derivada de Subjet encargada de invocar a update() cuando un cambio ocurre. Contiene métodos que permiten obtener su estado. Observer: clase base para los objetos observadores. Contiene el método update(). ConcreteObserver: Clase derivada de Observer que implementa el método update().

10 ¿ Por qué usar patrones? Por que es una forma de compartir las buenas prácticas. Ofrece un vocabulario común entre diseñadores. Permite reusar el diseño, no sólo el código. Ayuda a documentar los diseños. La próxima clase veremos más patrones.


Descargar ppt "1 Diseño de Patrones Agustín J. González ELO329. Generalidades En Electrónica y en la vida en común usar soluciones probadas para problemas similares."

Presentaciones similares


Anuncios Google