SlideShare una empresa de Scribd logo
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()

Más contenido relacionado

PDF
06 patrones
PDF
Patrones de Diseño de Software: Proxy
PPTX
Exposicion de patrón de diseño fachada
PDF
Patrones de Diseño y Frameworks
PDF
Patrones de diseño II
DOCX
Monografia patrones de diseño proxy (3.0)
PPT
Diseño de Patrones (Fachada)
PDF
Patrones diseño de software
06 patrones
Patrones de Diseño de Software: Proxy
Exposicion de patrón de diseño fachada
Patrones de Diseño y Frameworks
Patrones de diseño II
Monografia patrones de diseño proxy (3.0)
Diseño de Patrones (Fachada)
Patrones diseño de software

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

PPTX
U5.pptx
PDF
Arquitectura aplicaciones Patrones de diseño
PDF
Patrones de diseño de software
PDF
Patrones de Diseño de Software
PPTX
Introduccion a la programacion orientada a objetos
PPTX
Principios de diseño de código orientado a objetos SOLID
PPT
patronesdiseño2009.ppt
PPTX
Patrones de diseño utilizado en la aplicacion de soluciones web
PPTX
Introducción a DDD
PPT
6070_TRECALDE_00288.ppt
PPTX
Patrones de diseño
PPT
PDF
200812 - Patrones de Diseño de Software (parte 1/4)
PDF
Modelo Orientado A Objetos
PPTX
Patrones de diseño II
PPTX
Método fabrica (Method Factory)
PPTX
PATRONES DE DISEÑO WEB.pptx
PPTX
PATRONES DE DISEÑO WEB.pptx
U5.pptx
Arquitectura aplicaciones Patrones de diseño
Patrones de diseño de software
Patrones de Diseño de Software
Introduccion a la programacion orientada a objetos
Principios de diseño de código orientado a objetos SOLID
patronesdiseño2009.ppt
Patrones de diseño utilizado en la aplicacion de soluciones web
Introducción a DDD
6070_TRECALDE_00288.ppt
Patrones de diseño
200812 - Patrones de Diseño de Software (parte 1/4)
Modelo Orientado A Objetos
Patrones de diseño II
Método fabrica (Method Factory)
PATRONES DE DISEÑO WEB.pptx
PATRONES DE DISEÑO WEB.pptx
Publicidad

Más de Jano González (15)

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

Último (20)

DOCX
Zarate Quispe Alex aldayir aplicaciones de internet .docx
PPTX
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
PPTX
Historia Inteligencia Artificial Ana Romero.pptx
PDF
CyberOps Associate - Cisco Networking Academy
PDF
capacitación de aire acondicionado Bgh r 410
PDF
TRABAJO DE TECNOLOGIA.pdf...........................
PDF
Diapositiva proyecto de vida, materia catedra
PPTX
Presentación de Redes de Datos modelo osi
PPTX
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
PDF
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
PDF
Documental Beyond the Code (Dossier Presentación - 2.0)
PDF
MANUAL de recursos humanos para ODOO.pdf
PDF
ADMINISTRACIÓN DE ARCHIVOS - TICS (SENA).pdf
PDF
Maste clas de estructura metálica y arquitectura
PPTX
modulo seguimiento 1 para iniciantes del
PDF
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
PPTX
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
PDF
informe_fichas1y2_corregido.docx (2) (1).pdf
PDF
PRESENTACIÓN GENERAL MIPIG - MODELO INTEGRADO DE PLANEACIÓN
PPTX
El uso de las TIC en la vida cotidiana..
Zarate Quispe Alex aldayir aplicaciones de internet .docx
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
Historia Inteligencia Artificial Ana Romero.pptx
CyberOps Associate - Cisco Networking Academy
capacitación de aire acondicionado Bgh r 410
TRABAJO DE TECNOLOGIA.pdf...........................
Diapositiva proyecto de vida, materia catedra
Presentación de Redes de Datos modelo osi
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
Documental Beyond the Code (Dossier Presentación - 2.0)
MANUAL de recursos humanos para ODOO.pdf
ADMINISTRACIÓN DE ARCHIVOS - TICS (SENA).pdf
Maste clas de estructura metálica y arquitectura
modulo seguimiento 1 para iniciantes del
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
informe_fichas1y2_corregido.docx (2) (1).pdf
PRESENTACIÓN GENERAL MIPIG - MODELO INTEGRADO DE PLANEACIÓN
El uso de las TIC en la vida cotidiana..

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()