Arquitectura aplicaciones Patrones de diseño

  • 1,249 views
Uploaded on

Patrones de diseño SW

Patrones de diseño SW

More in: Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,249
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
74
Comments
0
Likes
4

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Arquitectura de Aplicaciones Germania Rodríguez grrodriguez@utpl.edu.ec
  • 2. Patrones de Diseño•  Introducción – La construcción de software – tarea complicada – Depende de la experiencia de las personas - desarrolladores – El 80% de los aportes viene del 20% del personal – El 80% del esfuerzo está en el 20% del código desarrollado
  • 3. Patrones de DiseñoObjetivo REUTILIZACIÓN
  • 4. Patrones de Diseño•  Mecanismos de reutilización – Componentes – Frameworks – Objetos distribuidos – PATRONES DE DISEÑO
  • 5. Patrones de Diseño“Cada patrón describe un problema que ocurre una y otra vez en nuestro entorno, para describir después el núcleo de la solución a ese problema, de tal manera que esa solución pueda ser usada más de un millón de veces sin hacerlo siquiera dos veces de la misma forma” - Christopher Alexander
  • 6. Patrones de Diseño•  Objetivo: crear un lenguaje común a una comunidad de desarrolladores para comunicar experiencia sobre los problemas y sus soluciones
  • 7. Patrones de Diseño•  Características –  Solucionar un problema –  Ser un concepto probado –  La solución no es obvia –  Describe participantes y sus relaciones
  • 8. Patrones de Diseño•  Elementos 1.  El nombre del patrón 2.  El problema 3.  La solución 4.  Las consecuencias - resultados
  • 9. Patrones de Diseño•  Clasificación PropósitoÁmbito Patrones de Patrones Patrones de Creación estructurales Comportamiento Clase •  Factory Method •  Adapter (de •  Interpreter clases) •  Template Method Objeto •  Abstract Factory •  Adapter (de •  Chain of •  Builder objetos) Responsibility •  Prototype •  Bridge •  Command •  Singleton •  Composite •  Iterator •  Decorator •  Mediator •  Facade •  Memento •  Flyweight •  Observer •  Proxy •  State •  Strategy •  Visitor
  • 10. Patrones de Diseño PATRONES DE CREACIÓNSu propósito principal es abstraer el proceso de creación de instancias.Ayudan a hacer un sistema independiente de cómo se crean, se componen yse representan sus objetos - Un patrón de clases usa la herencia para cambiarla clase de la instancia a crear, mientras que un patrón de objetos delega lacreación de la instancia en otro objeto. Éstos a su vez se clasifican en: Fabrica Abstracta (Abstract Factory) Proporciona una interfaz para crear familias de objetos o que dependen entre sí, sin especificar sus clases concretas. Constructor (Builder) Separa la construcción de un objeto de su representación. Método de Fábrica (Factory Method) Define una interfaz para crear un objeto. Prototipo (Prototype) Especifica los tipos de objetos a crear por medio de una instancia prototípica y crea nuevos objetos copiando dicho prototipo. Instancia única (Singleton) Garantiza que una clase solo tenga una instancia
  • 11. Patrones de Diseño PATRONES ESTRUCTURALESSe ocupan de cómo se combinan las clases y los objetos para formar estructurasmás grandes - Los patrones estructurales de clases hacen uso de la herencia paracomponer interfaces o implementaciones. En éste tipo de patrones se encuentran: Adaptador (Adapter) Convierte la interfaz de una clase en otra interfaz que es la que esperan los clientes. Puente (Bridge) Desacopla una abstracción de su implementación Compuesto (Composite) Compone objetos en estructuras de árbol para representar jerarquías de parte-todo. Decorador (Decorator) Asigna responsabilidades adicionales a un objeto dinámicamente Fachada (Facade) Proporciona una interfaz unificada para un conjunto de interfaces de un subsistema. Peso ligero (Flyweight) Una instancia de grano fino usada para compartir eficientemente Apoderado (Proxy) Un objeto representando otro objeto
  • 12. Patrones de Diseño PATRONES DE COMPORTAMIENTOTienen que ver con algoritmos y con la asignación de responsabilidades a objetos.Describen no solo patrones de clases y objetos, sino también patrones decomunicación entre ellos. Cadena de responsabilidad (Chain of responsibility) Encadena los objetos receptores y pasa la petición a través de la cadena hasta que es procesada por algún objeto. Orden (Command) Encapsula una petición orden como un objeto. Interprete (Interpreter) Define una forma para incluir elementos de lenguaje en un programa Iterador (Iterator) Proporciona un modo secuencial para acceder a los elementos de una colección Mediador (Mediator) Define comunicación simplificada entre clases Recuerdo (Memento) Captura y restaura el estado interno de un objeto.
  • 13. Patrones de Diseño PATRONES DE COMPORTAMIENTOObservador (Observer) Define una dependencia de uno a muchos entre objetosEstado (State) Permite que un objeto modifique su comportamiento cada vez que cambie su estado interno.Estrategia (Strategy) Define una familia de algoritmos, encapsula cada uno de ellos y los hace intercambiables.Método Plantilla (Template method) Define en una operación el esqueleto de un algoritmo, delegando en las subclases algunos de sus pasos.Visitante (Visitor) Representa una operación sobre los elementos de una estructura de objetos.
  • 14. Patrones de Diseño•  ¿Cómo seleccionar un patrón de diseño? •  Tipo de problema a resolver •  Que tipos de problemas solucionan un patrón determinado •  Observar las interrelaciones de los patrones •  Visión sistémica (todo) •  Piense que debería ser variable en su diseño.
  • 15. Patrones de Diseño•  ¿Cómo usar un patrón de diseño? •  Familiarizarse con el Patrón: estructura, participantes y colaboraciones. •  Examine algunos ejemplos de su codificación •  Elija nombres significativos en el contexto de la aplicación •  Defina las clases •  Defina nombres especificos de la aplicación para las operaciones del patrón •  Implemente las operaciones para llevar a cabo las responsabilidades y colaboraciones del patrón.
  • 16. Patrones de Diseño•  Patrones y Frameworks – L o s p a t r o n e s d e d i s e ñ o s o n m á s abstractos que los frameworks – Los patrones de diseño son elementos arquitectónicos más pequeños que los frameworks – Los patrones están menos especializados que los framework
  • 17. Bibliografía•  Gamma E., Helm R., Johnson R., Vlissides J., Patrones de diseño: Elementos de software orientado a objetos reutilizable, Pearson Education S.A., Madrid 2003.•  C a l d e r o n J . , S i s t e m a s I V , h t t p : / / w w w. s l i d e s h a r e . n e t / videoconferencias/sistemas-iv, UTPL 2007