SlideShare a Scribd company logo
1 of 21
Download to read offline
Módulo 2
Análisis y Diseño OO

                Clase 2

     • Buenas Prácticas
     • Patrones de Diseño




      Alejandro González Orellana
Temario
• Buenas Prácticas
• Patrones de Diseño
Buenas Prácticas

             Respetar el encapsulamiento
• No se debe permitir que atributos de un objetos sean
  manipulados de forma directa.
• Por qué: Evita llevar a estados inconsistentes un objeto.
• Cómo: No usar atributos públicos, toda interacción con
  otro objeto debe ser mediante llamadas a métodos.


                             Métodos

                             Atributos
Buenas Prácticas

          Usar el tipo más abstracto posible
• No se debe utilizar una implementación concreta de un
  objeto si existe un tipo más abstracto disponible.
• Por qué: Evita depender de implementaciones concretas.
• Cómo: Utilizar el tipo más abstracto posible en una
  jerarquía de objetos.
Buenas Prácticas

      Preferir Composición frente a Herencia
• No se debe abusar de la herencia
• Por qué: Ayuda a mantener las clases centradas en una sola
  tarea
• Cómo: Utilizar composición siempre que sea posible
Buenas Prácticas

                  Usar la delegación
• Un objeto no debería tener más de una responsabilidad.
• Por qué: Permite combinar de mejor forma objetos para
  realizar tareas.
• Cómo: Utilizar delegación cuando un objeto tenga más de
  una responsabilidad.
Temario
• Buenas Prácticas
• Patrones de Diseño
Patrones de Diseño

                        ¿Qué son?
• Los patrones de diseño son soluciones a problemas
  recurrentes de diseño, que han sido probadas y
  catalogadas.
• Permiten que los diseños sean más elegantes, mantenibles
  y reutilizables.
Patrones de Diseño

                      Patrones GoF
• Patrones de Creación: Abstraen el proceso de creación de
  instancias. Ayudan a hacer un sistema independiente de
  cómo se crean, componen y se representan los objetos.
• Patrones Estructurales: Se ocupan de cómo se combinan
  clases y objetos para formar estructuras más grandes.
• Patrones de Comportamiento: Tienen que ver con
  algoritmos y asignación de responsabilidades a objetos. No
  solo describen patrones de clases y objetos, sino también
  patrones de comunicación entre ellos.
Patrones de Diseño

                     Factory Method
• Problema: Crear objetos derivados de una misma clase.
• Solución: Delegar la creación de objetos de la jerarquía en
  un objeto con un método de fabricación.
Patrones de Diseño

                  Factory Method

                                  Creador
      Producto
                             metodoFabricacion()




   ProductoConcreto          CreadorConcreto


                             metodoFabricacion()
Patrones de Diseño

                         Singleton
• Problema: Se desea tener sólo una instancia de un objeto
  en memoria.
• Solución: Hacer a la propia clase responsable de su
  instancia.
Patrones de Diseño

                 Singleton

                 Singleton

          instancia : Singleton

          getInstancia() : Singleton
Patrones de Diseño

                       Decorator
• Problema: Modificar comportamiento de objetos
  individuales sin crear nuevas subclases.
• Solución: Delegar la incorporación de comportamiento
  añadido
Patrones de Diseño

                                Decorator
             Componente


                  operacion()




ComponenteConcreto                     Decorador


    operacion()                        operacion()




                  DecoradorConcretoA                 DecoradorConcretoB


                        operacion()                      operacion()
Patrones de Diseño

                         Facade
• Problema: Ocultar la complejidad de un sistema
• Solución: Esconder la complejidad detrás de una fachada
Patrones de Diseño

              Facade

               Fachada
Patrones de Diseño

                        Command
• Problema: Desacoplar acciones que se pueden realizar en
  un sistema
• Solución: Crear objetos fácilmente intercambiables que
  contengan las acciones
Patrones de Diseño

                Command

                                         Orden
  Cliente     Invocador

                                        ejecutar()




                                     OrdenConcreta
                          receptor
            Receptor                 estado

                                     ejecutar()
Patrones de Diseño

                   Template Method
• Problema: Implementar diferentes versiones de un
  algoritmo respetando una estructura base
• Solución: Implementar parte del algoritmo en una clase
  base y dejar puntos de extensión.
Patrones de Diseño

          Template Method

             ClaseAbstracta

           metodoPlantilla()
           operacion1()
           operacion2()




              ClaseConcreta

           operacion1()
           operacion2()

More Related Content

Similar to Análisis y Diseño OO 2

Similar to Análisis y Diseño OO 2 (20)

U5.pptx
U5.pptxU5.pptx
U5.pptx
 
Patrones GOF
Patrones GOFPatrones GOF
Patrones GOF
 
Arquitectura aplicaciones Patrones de diseño
Arquitectura aplicaciones Patrones de diseñoArquitectura aplicaciones Patrones de diseño
Arquitectura aplicaciones Patrones de diseño
 
Patrones de diseño de software
Patrones de diseño de softwarePatrones de diseño de software
Patrones de diseño de software
 
Patrones de Diseño de Software
Patrones de Diseño de SoftwarePatrones de Diseño de Software
Patrones de Diseño de Software
 
Principios de diseño de código orientado a objetos SOLID
Principios de diseño de código orientado a objetos SOLIDPrincipios de diseño de código orientado a objetos SOLID
Principios de diseño de código orientado a objetos SOLID
 
patronesdiseño2009.ppt
patronesdiseño2009.pptpatronesdiseño2009.ppt
patronesdiseño2009.ppt
 
Introducción a DDD
Introducción a DDDIntroducción a DDD
Introducción a DDD
 
chuy
chuy chuy
chuy
 
6070_TRECALDE_00288.ppt
6070_TRECALDE_00288.ppt6070_TRECALDE_00288.ppt
6070_TRECALDE_00288.ppt
 
Patrones de diseño
Patrones de diseñoPatrones de diseño
Patrones de diseño
 
Astema3
Astema3Astema3
Astema3
 
200812 - Patrones de Diseño de Software (parte 1/4)
200812 - Patrones de Diseño de Software (parte 1/4)200812 - Patrones de Diseño de Software (parte 1/4)
200812 - Patrones de Diseño de Software (parte 1/4)
 
Modelo Orientado A Objetos
Modelo Orientado A ObjetosModelo Orientado A Objetos
Modelo Orientado A Objetos
 
Patrones de diseño II
Patrones de diseño IIPatrones de diseño II
Patrones de diseño II
 
Método fabrica (Method Factory)
Método fabrica (Method Factory)Método fabrica (Method Factory)
Método fabrica (Method Factory)
 
PATRONES DE DISEÑO WEB.pptx
PATRONES DE DISEÑO WEB.pptxPATRONES DE DISEÑO WEB.pptx
PATRONES DE DISEÑO WEB.pptx
 
PATRONES DE DISEÑO WEB.pptx
PATRONES DE DISEÑO WEB.pptxPATRONES DE DISEÑO WEB.pptx
PATRONES DE DISEÑO WEB.pptx
 
Buider Patron de Diseño
Buider Patron de DiseñoBuider Patron de Diseño
Buider Patron de Diseño
 
Patrones de creación
Patrones de creaciónPatrones de creación
Patrones de creación
 

More from Jano González

JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011
JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011
JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011Jano González
 
JRuby: Ruby en un mundo enterprise
JRuby: Ruby en un mundo enterpriseJRuby: Ruby en un mundo enterprise
JRuby: Ruby en un mundo enterpriseJano González
 
Programación Políglota en la JVM
Programación Políglota en la JVMProgramación Políglota en la JVM
Programación Políglota en la JVMJano González
 
JRuby ¿Lo mejor de dos mundos?
JRuby ¿Lo mejor de dos mundos?JRuby ¿Lo mejor de dos mundos?
JRuby ¿Lo mejor de dos mundos?Jano González
 
Un emulador de Game Boy escrito en Ruby (parte 1)
Un emulador de Game Boy escrito en Ruby (parte 1)Un emulador de Game Boy escrito en Ruby (parte 1)
Un emulador de Game Boy escrito en Ruby (parte 1)Jano González
 
Taller de Unit Testing y TDD en Java: Parte 1
Taller de Unit Testing y TDD en Java: Parte 1Taller de Unit Testing y TDD en Java: Parte 1
Taller de Unit Testing y TDD en Java: Parte 1Jano González
 
Curso de Spring: Transacciones
Curso de Spring: TransaccionesCurso de Spring: Transacciones
Curso de Spring: TransaccionesJano González
 
Análisis y Diseño OO 1
Análisis y Diseño OO 1Análisis y Diseño OO 1
Análisis y Diseño OO 1Jano González
 
Curso de Spring: Beans
Curso de Spring: BeansCurso de Spring: Beans
Curso de Spring: BeansJano González
 
Un newbie conoce a Sinatra
Un newbie conoce a SinatraUn newbie conoce a Sinatra
Un newbie conoce a SinatraJano González
 

More from Jano González (15)

Spring jdbc
Spring jdbcSpring jdbc
Spring jdbc
 
Vim FTW!
Vim FTW!Vim FTW!
Vim FTW!
 
Ruby
RubyRuby
Ruby
 
JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011
JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011
JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011
 
JRuby: Ruby en un mundo enterprise
JRuby: Ruby en un mundo enterpriseJRuby: Ruby en un mundo enterprise
JRuby: Ruby en un mundo enterprise
 
Programación Políglota en la JVM
Programación Políglota en la JVMProgramación Políglota en la JVM
Programación Políglota en la JVM
 
A Little RSpec
A Little RSpecA Little RSpec
A Little RSpec
 
JRuby ¿Lo mejor de dos mundos?
JRuby ¿Lo mejor de dos mundos?JRuby ¿Lo mejor de dos mundos?
JRuby ¿Lo mejor de dos mundos?
 
Un emulador de Game Boy escrito en Ruby (parte 1)
Un emulador de Game Boy escrito en Ruby (parte 1)Un emulador de Game Boy escrito en Ruby (parte 1)
Un emulador de Game Boy escrito en Ruby (parte 1)
 
Taller de Unit Testing y TDD en Java: Parte 1
Taller de Unit Testing y TDD en Java: Parte 1Taller de Unit Testing y TDD en Java: Parte 1
Taller de Unit Testing y TDD en Java: Parte 1
 
Curso de Spring: Transacciones
Curso de Spring: TransaccionesCurso de Spring: Transacciones
Curso de Spring: Transacciones
 
Análisis y Diseño OO 1
Análisis y Diseño OO 1Análisis y Diseño OO 1
Análisis y Diseño OO 1
 
Programación Java
Programación JavaProgramación Java
Programación Java
 
Curso de Spring: Beans
Curso de Spring: BeansCurso de Spring: Beans
Curso de Spring: Beans
 
Un newbie conoce a Sinatra
Un newbie conoce a SinatraUn newbie conoce a Sinatra
Un newbie conoce a Sinatra
 

Recently uploaded

trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...JaquelineJuarez15
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 

Recently uploaded (20)

trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 

Análisis y Diseño OO 2

  • 1. Módulo 2 Análisis y Diseño OO Clase 2 • Buenas Prácticas • Patrones de Diseño Alejandro González Orellana
  • 2. Temario • Buenas Prácticas • Patrones de Diseño
  • 3. Buenas Prácticas Respetar el encapsulamiento • No se debe permitir que atributos de un objetos sean manipulados de forma directa. • Por qué: Evita llevar a estados inconsistentes un objeto. • Cómo: No usar atributos públicos, toda interacción con otro objeto debe ser mediante llamadas a métodos. Métodos Atributos
  • 4. Buenas Prácticas Usar el tipo más abstracto posible • No se debe utilizar una implementación concreta de un objeto si existe un tipo más abstracto disponible. • Por qué: Evita depender de implementaciones concretas. • Cómo: Utilizar el tipo más abstracto posible en una jerarquía de objetos.
  • 5. Buenas Prácticas Preferir Composición frente a Herencia • No se debe abusar de la herencia • Por qué: Ayuda a mantener las clases centradas en una sola tarea • Cómo: Utilizar composición siempre que sea posible
  • 6. Buenas Prácticas Usar la delegación • Un objeto no debería tener más de una responsabilidad. • Por qué: Permite combinar de mejor forma objetos para realizar tareas. • Cómo: Utilizar delegación cuando un objeto tenga más de una responsabilidad.
  • 7. Temario • Buenas Prácticas • Patrones de Diseño
  • 8. Patrones de Diseño ¿Qué son? • Los patrones de diseño son soluciones a problemas recurrentes de diseño, que han sido probadas y catalogadas. • Permiten que los diseños sean más elegantes, mantenibles y reutilizables.
  • 9. Patrones de Diseño Patrones GoF • Patrones de Creación: Abstraen el proceso de creación de instancias. Ayudan a hacer un sistema independiente de cómo se crean, componen y se representan los objetos. • Patrones Estructurales: Se ocupan de cómo se combinan clases y objetos para formar estructuras más grandes. • Patrones de Comportamiento: Tienen que ver con algoritmos y asignación de responsabilidades a objetos. No solo describen patrones de clases y objetos, sino también patrones de comunicación entre ellos.
  • 10. Patrones de Diseño Factory Method • Problema: Crear objetos derivados de una misma clase. • Solución: Delegar la creación de objetos de la jerarquía en un objeto con un método de fabricación.
  • 11. Patrones de Diseño Factory Method Creador Producto metodoFabricacion() ProductoConcreto CreadorConcreto metodoFabricacion()
  • 12. Patrones de Diseño Singleton • Problema: Se desea tener sólo una instancia de un objeto en memoria. • Solución: Hacer a la propia clase responsable de su instancia.
  • 13. Patrones de Diseño Singleton Singleton instancia : Singleton getInstancia() : Singleton
  • 14. Patrones de Diseño Decorator • Problema: Modificar comportamiento de objetos individuales sin crear nuevas subclases. • Solución: Delegar la incorporación de comportamiento añadido
  • 15. Patrones de Diseño Decorator Componente operacion() ComponenteConcreto Decorador operacion() operacion() DecoradorConcretoA DecoradorConcretoB operacion() operacion()
  • 16. Patrones de Diseño Facade • Problema: Ocultar la complejidad de un sistema • Solución: Esconder la complejidad detrás de una fachada
  • 17. Patrones de Diseño Facade Fachada
  • 18. Patrones de Diseño Command • Problema: Desacoplar acciones que se pueden realizar en un sistema • Solución: Crear objetos fácilmente intercambiables que contengan las acciones
  • 19. Patrones de Diseño Command Orden Cliente Invocador ejecutar() OrdenConcreta receptor Receptor estado ejecutar()
  • 20. Patrones de Diseño Template Method • Problema: Implementar diferentes versiones de un algoritmo respetando una estructura base • Solución: Implementar parte del algoritmo en una clase base y dejar puntos de extensión.
  • 21. Patrones de Diseño Template Method ClaseAbstracta metodoPlantilla() operacion1() operacion2() ClaseConcreta operacion1() operacion2()