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.
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.
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.
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
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.