SlideShare ist ein Scribd-Unternehmen logo
1 von 17
Downloaden Sie, um offline zu lesen
Arquitectura de Aplicaciones

         Germania Rodríguez
        grrodriguez@utpl.edu.ec
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
Patrones de Diseño


Objetivo REUTILIZACIÓN
Patrones de Diseño

•  Mecanismos de reutilización
  – Componentes
  – Frameworks
  – Objetos distribuidos
  – PATRONES DE DISEÑO
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
Patrones de Diseño
•  Objetivo: crear un lenguaje común a
   una comunidad de desarrolladores para
   comunicar experiencia sobre los
   problemas y sus soluciones
Patrones de Diseño
•  Características
  –  Solucionar un problema
  –  Ser un concepto probado
  –  La solución no es obvia
  –  Describe participantes y sus relaciones
Patrones de Diseño
•  Elementos
  1.    El nombre del patrón
  2.    El problema
  3.    La solución
  4.    Las consecuencias - resultados
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
Patrones de Diseño
                     PATRONES DE CREACIÓN
Su 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 y
se representan sus objetos - Un patrón de clases usa la herencia para cambiar
la clase de la instancia a crear, mientras que un patrón de objetos delega la
creació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
Patrones de Diseño
                    PATRONES ESTRUCTURALES
Se ocupan de cómo se combinan las clases y los objetos para formar estructuras
más grandes - Los patrones estructurales de clases hacen uso de la herencia para
componer 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
Patrones de Diseño
                 PATRONES DE COMPORTAMIENTO
Tienen 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 de
comunicació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.
Patrones de Diseño
            PATRONES DE COMPORTAMIENTO
Observador (Observer)
     Define una dependencia de uno a muchos entre objetos
Estado (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.
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.
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.
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
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

Weitere ähnliche Inhalte

Was ist angesagt?

programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
jent46
 
Analisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A ObjetosAnalisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A Objetos
yoiner santiago
 
Diagrama de interaccion(secuencia y colaboracion)
Diagrama de interaccion(secuencia y colaboracion)Diagrama de interaccion(secuencia y colaboracion)
Diagrama de interaccion(secuencia y colaboracion)
marianela0393
 
Modelado de análisis para aplicaciones webkarina
Modelado de análisis para aplicaciones webkarinaModelado de análisis para aplicaciones webkarina
Modelado de análisis para aplicaciones webkarina
karinaarevalo22
 
Clases abstractas e interfaces
Clases abstractas e interfacesClases abstractas e interfaces
Clases abstractas e interfaces
lopezcortes
 

Was ist angesagt? (20)

programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
 
Modelo del dominio
Modelo del dominioModelo del dominio
Modelo del dominio
 
Patrones de diseño de software
Patrones de diseño de softwarePatrones de diseño de software
Patrones de diseño de software
 
Analisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A ObjetosAnalisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A Objetos
 
NoSQL bases de datos no relacionales
NoSQL bases de datos no relacionalesNoSQL bases de datos no relacionales
NoSQL bases de datos no relacionales
 
Diagrama de interaccion(secuencia y colaboracion)
Diagrama de interaccion(secuencia y colaboracion)Diagrama de interaccion(secuencia y colaboracion)
Diagrama de interaccion(secuencia y colaboracion)
 
Formato ieee830
Formato ieee830Formato ieee830
Formato ieee830
 
Modelo de prototipo
Modelo de prototipoModelo de prototipo
Modelo de prototipo
 
Modelado de análisis para aplicaciones webkarina
Modelado de análisis para aplicaciones webkarinaModelado de análisis para aplicaciones webkarina
Modelado de análisis para aplicaciones webkarina
 
Sockets y canales
Sockets y canalesSockets y canales
Sockets y canales
 
Normalizacion
NormalizacionNormalizacion
Normalizacion
 
Clases abstractas e interfaces
Clases abstractas e interfacesClases abstractas e interfaces
Clases abstractas e interfaces
 
Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programación
 
Métodos Formales
Métodos FormalesMétodos Formales
Métodos Formales
 
Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programación
 
Ciclo de vida cascada
Ciclo de vida cascadaCiclo de vida cascada
Ciclo de vida cascada
 
Diagramas de caso de uso
Diagramas de caso de usoDiagramas de caso de uso
Diagramas de caso de uso
 
Code Smells y SOLID: A qué huele tu código?
Code Smells y SOLID: A qué huele tu código?Code Smells y SOLID: A qué huele tu código?
Code Smells y SOLID: A qué huele tu código?
 
Cuadro comparativo
Cuadro comparativoCuadro comparativo
Cuadro comparativo
 
Modelo espiral
Modelo espiralModelo espiral
Modelo espiral
 

Andere mochten auch

Patrones de diseño I
Patrones de diseño IPatrones de diseño I
Patrones de diseño I
kaolong
 
Patrones estructurales
Patrones estructuralesPatrones estructurales
Patrones estructurales
Juan Camilo
 
Artesanos de software: El uso e implementación de patrones de diseño en siste...
Artesanos de software: El uso e implementación de patrones de diseño en siste...Artesanos de software: El uso e implementación de patrones de diseño en siste...
Artesanos de software: El uso e implementación de patrones de diseño en siste...
Software Guru
 

Andere mochten auch (20)

Introducción a los Patrones de diseño de software
Introducción a los Patrones de diseño de softwareIntroducción a los Patrones de diseño de software
Introducción a los Patrones de diseño de software
 
Patrones de diseño
Patrones de diseñoPatrones de diseño
Patrones de diseño
 
Patrones de diseño I
Patrones de diseño IPatrones de diseño I
Patrones de diseño I
 
Patrones estructurales
Patrones estructuralesPatrones estructurales
Patrones estructurales
 
Patrones diseño de software
Patrones diseño de softwarePatrones diseño de software
Patrones diseño de software
 
DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWAREDISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
 
Emprendimiento Tecnológico
Emprendimiento TecnológicoEmprendimiento Tecnológico
Emprendimiento Tecnológico
 
Mada metodología ágil de desarrollo de apis
Mada   metodología ágil de desarrollo de apisMada   metodología ágil de desarrollo de apis
Mada metodología ágil de desarrollo de apis
 
Definición de apis con swagger
Definición de apis con swaggerDefinición de apis con swagger
Definición de apis con swagger
 
Analisis ¿No es eso para personas poco inteligentes?
Analisis ¿No es eso para personas poco inteligentes?Analisis ¿No es eso para personas poco inteligentes?
Analisis ¿No es eso para personas poco inteligentes?
 
Conceptos introductorios al diseño de Servicios SOA
Conceptos introductorios al diseño de Servicios SOAConceptos introductorios al diseño de Servicios SOA
Conceptos introductorios al diseño de Servicios SOA
 
Patrones de diseño en POO
Patrones de diseño en POOPatrones de diseño en POO
Patrones de diseño en POO
 
Patrones de Diseño y Frameworks
Patrones de Diseño y FrameworksPatrones de Diseño y Frameworks
Patrones de Diseño y Frameworks
 
Artesanos de software: El uso e implementación de patrones de diseño en siste...
Artesanos de software: El uso e implementación de patrones de diseño en siste...Artesanos de software: El uso e implementación de patrones de diseño en siste...
Artesanos de software: El uso e implementación de patrones de diseño en siste...
 
Orquestación de Servicios y SOA
Orquestación de Servicios y SOAOrquestación de Servicios y SOA
Orquestación de Servicios y SOA
 
Apache Camel
Apache CamelApache Camel
Apache Camel
 
Patrones Creacionales
Patrones CreacionalesPatrones Creacionales
Patrones Creacionales
 
patrones de diseño web.
  patrones de diseño web.   patrones de diseño web.
patrones de diseño web.
 
Apache Camel - Parte II
Apache Camel - Parte IIApache Camel - Parte II
Apache Camel - Parte II
 
Orquestación o coreografía
Orquestación o coreografíaOrquestación o coreografía
Orquestación o coreografía
 

Ähnlich wie Arquitectura aplicaciones Patrones de diseño

Desarrollo basado en patrones
Desarrollo basado en patronesDesarrollo basado en patrones
Desarrollo basado en patrones
Marvin Zumbado
 
Patrones de diseño - Andrés Dorado
Patrones de diseño - Andrés DoradoPatrones de diseño - Andrés Dorado
Patrones de diseño - Andrés Dorado
2008PA2Info3
 
CC51A_Clase13-14_Patrones_Arquitectonicos.ppt
CC51A_Clase13-14_Patrones_Arquitectonicos.pptCC51A_Clase13-14_Patrones_Arquitectonicos.ppt
CC51A_Clase13-14_Patrones_Arquitectonicos.ppt
BayronHernandez12
 
Patrones de diseño - Henry Vallejo
Patrones de diseño - Henry VallejoPatrones de diseño - Henry Vallejo
Patrones de diseño - Henry Vallejo
2008PA2Info3
 
Buider Patron de Diseño
Buider Patron de DiseñoBuider Patron de Diseño
Buider Patron de Diseño
Mario Cabrera
 
Patrones de diseño - Daniel E. Jaramillo
Patrones de diseño - Daniel E. JaramilloPatrones de diseño - Daniel E. Jaramillo
Patrones de diseño - Daniel E. Jaramillo
2008PA2Info3
 

Ähnlich wie Arquitectura aplicaciones Patrones de diseño (20)

Desarrollo basado en patrones
Desarrollo basado en patronesDesarrollo basado en patrones
Desarrollo basado en patrones
 
Patrones diseño y arquitectura
Patrones diseño y arquitecturaPatrones diseño y arquitectura
Patrones diseño y arquitectura
 
Patrones de Diseño
Patrones de DiseñoPatrones de Diseño
Patrones de Diseño
 
6070_TRECALDE_00288.ppt
6070_TRECALDE_00288.ppt6070_TRECALDE_00288.ppt
6070_TRECALDE_00288.ppt
 
U5.pptx
U5.pptxU5.pptx
U5.pptx
 
patronesdiseño2009.ppt
patronesdiseño2009.pptpatronesdiseño2009.ppt
patronesdiseño2009.ppt
 
Semana 1 Patrones de Diseño
Semana 1   Patrones de DiseñoSemana 1   Patrones de Diseño
Semana 1 Patrones de Diseño
 
chuy
chuy chuy
chuy
 
Construcción de Software (Patrones)
Construcción de Software (Patrones)Construcción de Software (Patrones)
Construcción de Software (Patrones)
 
Astema3
Astema3Astema3
Astema3
 
Patrones de Diseño de Software
Patrones de Diseño de SoftwarePatrones de Diseño de Software
Patrones de Diseño de Software
 
06 patrones
06 patrones06 patrones
06 patrones
 
Catalogo de patrones 0
Catalogo de patrones 0Catalogo de patrones 0
Catalogo de patrones 0
 
Patrones de diseño - Andrés Dorado
Patrones de diseño - Andrés DoradoPatrones de diseño - Andrés Dorado
Patrones de diseño - Andrés Dorado
 
Patrones de diseño I
Patrones de diseño IPatrones de diseño I
Patrones de diseño I
 
CC51A_Clase13-14_Patrones_Arquitectonicos.ppt
CC51A_Clase13-14_Patrones_Arquitectonicos.pptCC51A_Clase13-14_Patrones_Arquitectonicos.ppt
CC51A_Clase13-14_Patrones_Arquitectonicos.ppt
 
Patrones de diseño - Henry Vallejo
Patrones de diseño - Henry VallejoPatrones de diseño - Henry Vallejo
Patrones de diseño - Henry Vallejo
 
Introducción a DDD
Introducción a DDDIntroducción a DDD
Introducción a DDD
 
Buider Patron de Diseño
Buider Patron de DiseñoBuider Patron de Diseño
Buider Patron de Diseño
 
Patrones de diseño - Daniel E. Jaramillo
Patrones de diseño - Daniel E. JaramilloPatrones de diseño - Daniel E. Jaramillo
Patrones de diseño - Daniel E. Jaramillo
 

Mehr von Germania Rodriguez

Gestión de ti arquitectura empresarial como programa de gestión, método de an...
Gestión de ti arquitectura empresarial como programa de gestión, método de an...Gestión de ti arquitectura empresarial como programa de gestión, método de an...
Gestión de ti arquitectura empresarial como programa de gestión, método de an...
Germania Rodriguez
 
Gestión de ti arquitectura empresarial
Gestión de ti arquitectura empresarialGestión de ti arquitectura empresarial
Gestión de ti arquitectura empresarial
Germania Rodriguez
 
Automatas y compiladores clase4
Automatas y compiladores clase4Automatas y compiladores clase4
Automatas y compiladores clase4
Germania Rodriguez
 
Automatas y compiladores clase3
Automatas y compiladores clase3Automatas y compiladores clase3
Automatas y compiladores clase3
Germania Rodriguez
 
Automatas y compiladores clase2
Automatas y compiladores clase2Automatas y compiladores clase2
Automatas y compiladores clase2
Germania Rodriguez
 
Arquitectura aplicaciones clase3
Arquitectura aplicaciones clase3Arquitectura aplicaciones clase3
Arquitectura aplicaciones clase3
Germania Rodriguez
 
Arquitectura aplicaciones clase2
Arquitectura aplicaciones clase2Arquitectura aplicaciones clase2
Arquitectura aplicaciones clase2
Germania Rodriguez
 
Automatas y compiladores clase1
Automatas y compiladores clase1Automatas y compiladores clase1
Automatas y compiladores clase1
Germania Rodriguez
 
Sociedad de información evolucion ti
Sociedad de información evolucion tiSociedad de información evolucion ti
Sociedad de información evolucion ti
Germania Rodriguez
 
IntroduccióN Sociedad De InformacióN
IntroduccióN Sociedad De InformacióNIntroduccióN Sociedad De InformacióN
IntroduccióN Sociedad De InformacióN
Germania Rodriguez
 

Mehr von Germania Rodriguez (20)

Marco de referencia para evaluar calidad de sitios OCW mediante atributos cis...
Marco de referencia para evaluar calidad de sitios OCW mediante atributos cis...Marco de referencia para evaluar calidad de sitios OCW mediante atributos cis...
Marco de referencia para evaluar calidad de sitios OCW mediante atributos cis...
 
Gestión de proyectos PMBok
Gestión de proyectos PMBokGestión de proyectos PMBok
Gestión de proyectos PMBok
 
Introducción gestión de proyectos informáticos
Introducción gestión de proyectos informáticosIntroducción gestión de proyectos informáticos
Introducción gestión de proyectos informáticos
 
Tecnologías sociales para OCW
Tecnologías sociales para OCWTecnologías sociales para OCW
Tecnologías sociales para OCW
 
Gestión de ti arquitectura empresarial como programa de gestión, método de an...
Gestión de ti arquitectura empresarial como programa de gestión, método de an...Gestión de ti arquitectura empresarial como programa de gestión, método de an...
Gestión de ti arquitectura empresarial como programa de gestión, método de an...
 
Gestión de ti arquitectura empresarial
Gestión de ti arquitectura empresarialGestión de ti arquitectura empresarial
Gestión de ti arquitectura empresarial
 
Gestión de ti introduccion cobit itil pmi
Gestión de ti introduccion cobit itil pmiGestión de ti introduccion cobit itil pmi
Gestión de ti introduccion cobit itil pmi
 
Presentación Open Day Oportunidad UTPL
Presentación Open Day Oportunidad UTPLPresentación Open Day Oportunidad UTPL
Presentación Open Day Oportunidad UTPL
 
Presentación ddi 2012 proyecto cepra
Presentación ddi 2012 proyecto cepraPresentación ddi 2012 proyecto cepra
Presentación ddi 2012 proyecto cepra
 
Automatas y compiladores analisis sintactico
Automatas y compiladores analisis sintacticoAutomatas y compiladores analisis sintactico
Automatas y compiladores analisis sintactico
 
Automatas y compiladores tablas de transición análisis léxico
Automatas y compiladores tablas de transición análisis léxicoAutomatas y compiladores tablas de transición análisis léxico
Automatas y compiladores tablas de transición análisis léxico
 
Automatas y compiladores clase4
Automatas y compiladores clase4Automatas y compiladores clase4
Automatas y compiladores clase4
 
Automatas y compiladores clase3
Automatas y compiladores clase3Automatas y compiladores clase3
Automatas y compiladores clase3
 
Automatas y compiladores clase2
Automatas y compiladores clase2Automatas y compiladores clase2
Automatas y compiladores clase2
 
Arquitectura aplicaciones clase3
Arquitectura aplicaciones clase3Arquitectura aplicaciones clase3
Arquitectura aplicaciones clase3
 
Arquitectura aplicaciones clase2
Arquitectura aplicaciones clase2Arquitectura aplicaciones clase2
Arquitectura aplicaciones clase2
 
Automatas y compiladores clase1
Automatas y compiladores clase1Automatas y compiladores clase1
Automatas y compiladores clase1
 
Si nueva economia junio 2010
Si nueva economia junio 2010Si nueva economia junio 2010
Si nueva economia junio 2010
 
Sociedad de información evolucion ti
Sociedad de información evolucion tiSociedad de información evolucion ti
Sociedad de información evolucion ti
 
IntroduccióN Sociedad De InformacióN
IntroduccióN Sociedad De InformacióNIntroduccióN Sociedad De InformacióN
IntroduccióN Sociedad De InformacióN
 

Kürzlich hochgeladen

6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
Wilian24
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
EliaHernndez7
 

Kürzlich hochgeladen (20)

ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
 
PP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomasPP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomas
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024
 
PLAN LECTOR 2024 integrado nivel inicial-miercoles 10.pptx
PLAN LECTOR 2024  integrado nivel inicial-miercoles 10.pptxPLAN LECTOR 2024  integrado nivel inicial-miercoles 10.pptx
PLAN LECTOR 2024 integrado nivel inicial-miercoles 10.pptx
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
 
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfPlan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
 
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPCTRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
 
Novena de Pentecostés con textos de san Juan Eudes
Novena de Pentecostés con textos de san Juan EudesNovena de Pentecostés con textos de san Juan Eudes
Novena de Pentecostés con textos de san Juan Eudes
 
prostitución en España: una mirada integral!
prostitución en España: una mirada integral!prostitución en España: una mirada integral!
prostitución en España: una mirada integral!
 
Usos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicasUsos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicas
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
 
Lecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigosLecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigos
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdf
 
Código Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de VenezuelaCódigo Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de Venezuela
 

Arquitectura aplicaciones Patrones de diseño

  • 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
  • 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ÓN Su 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 y se representan sus objetos - Un patrón de clases usa la herencia para cambiar la clase de la instancia a crear, mientras que un patrón de objetos delega la creació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 ESTRUCTURALES Se ocupan de cómo se combinan las clases y los objetos para formar estructuras más grandes - Los patrones estructurales de clases hacen uso de la herencia para componer 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 COMPORTAMIENTO Tienen 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 de comunicació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 COMPORTAMIENTO Observador (Observer) Define una dependencia de uno a muchos entre objetos Estado (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