análisis y diseño oo 2
Post on 03-Jul-2015
1.198 Views
Preview:
DESCRIPTION
TRANSCRIPT
Módulo 2
Alejandro González Orellana
Análisis y Diseño OO
Clase 2
• Buenas Prácticas• Patrones de Diseño
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
Producto
ProductoConcreto
Creador
metodoFabricacion()
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
getInstancia() : Singleton
instancia : 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
DecoratorComponente
operacion()
ComponenteConcreto
operacion()
Decorador
operacion()
DecoradorConcretoA
operacion()
DecoradorConcretoB
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
Cliente
Receptor
Orden
ejecutar()
OrdenConcreta
ejecutar()
estado
Invocador
receptor
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()
top related