Mindmap
Patrones GRASP(Capa de Dominio)
Inhalt der Mindmap
Patrones GRASP(Capa de Dominio)
Patrones de Principios Generales para Asignar Responsabilidades
- La asignación de responsabilidades se muestra en los diagramas de interacción mediante mensajes que se envían a las clases de objetos.
- La asignación de responsabilidades a objetos se hace durante el diseño, al definir las operaciones de cada clase de objetos.
- Principios fundamentales para guiar la asignación de responsabilidades a objetos.
Patrones GRASP básicos
- Experto en Información
- Contexto: Asignación de responsabilidades a objetos
- Problema: ¿Cuál es el principio general para asignar responsabilidades a los objetos? Decidir a qué clase hemos de asignar una responsabilidad concreta.
- Solución:
- Asignar una responsabilidad a la clase que tiene la información necesaria para realizarla.
- La aplicación del patrón requiere tener claramente definidas las responsabilidades que se quieren asignar (postcondiciones de las operaciones).
- No siempre existe un único experto, sino que pueden existir diversos expertos parciales que tendrán que colaborar.
- Creador
- Contexto: Asignación de responsabilidades a objetos
- Problema: ¿Quién ha de tener la responsabilidad de crear una instancia de una clase?
- Solución: Asignar a la clase B la responsabilidad de crear una instancia de una clase A si satisface una de las siguientes condiciones:
- B es un agregado de objetos de A.
- B contiene objetos de A.
- B tiene los datos necesarios para inicializar un objeto de A(B tiene los valores de los parámetros del constructor de A).
- B usa muchos objetos de A.
- B guarda instancias de objetos de A.
- Controlador
- Contexto:
- Los sistemas software reciben eventos externos.
- Una vez recibido un evento en la capa de presentación, algún objeto de la capa de dominio ha de recibir este evento y ejecutar las acciones correspondientes.
- Problema: ¿Qué objeto es el responsable de tratar un evento externo?
- Solución:
- Asignar esta responsabilidad a un controlador.
- Un controlador es un objeto de una clase(no pertenece a la interfaz usuario).
- Posibles controladores:
- Controlador de Fachada: Una clase que representa todo el sistema.
- Controlador de Caso de Uso: Una clase que representa una instancia de un caso de uso.
- Contexto:
- Alta Cohesión
- Cohesión: medida del grado de relación y de concentración de las distintas responsabilidades de una clase.
- Contexto: Asignación de responsabilidades a objetos.
- Problema: ¿Cómo mantener la complejidad controlable?
- Solución: Asignar responsabilidades de manera que la cohesión permanezca alta.
- Una clase con cohesión baja:
- Ejemplo: Los controladores de fachada suelen ser poco cohesivos
- Tiene muchas responsabilidades de distintas áreas funcionales.
- Tiene muchas operaciones poco relacionadas funcionalmente.
- Inconveniente: difícil de comprender, difícil de reutilizar y de mantener, sensible a los cambios.
- Una clase con cohesión alta:
- Tiene pocas responsabilidades en un área funcional.
- Colabora con otras clases para hacer las tareas.
- Suele tener pocas operaciones muy relacionadas funcionalmente.
- Ventajas: fácil comprensión y fácil reutilización y mantenimiento.
- Bajo Acoplamiento
- Acomplamiento: medida del grado de conexión, conocimiento y dependencia de una clase respecto a otras clases
- Contexto: Asignación de responsabilidades a objetos.
- Problema: ¿Cómo soportar bajas dependencias, bajo impacto del cambio e incremento de reutilización?
- ¿Cuando hay acoplamiento de la clase A a la clase B?
- A tiene un atributo de tipo B.
- A tiene una asociación navegable con B.
- B es un parámetro o el retorno de una operación de A.
- Una operación de A hace referencia a un objeto de B.
- A es una subclase directa o indirecta de B.
- Solución: El acoplamiento entre clases ha de ser bajo para:
- Evitar que cambios en una clase tengan efecto sobre otras clases.
- Facilitar la comprensión de las clases (sin recurrir a otras)
- Facilitar la reutilización.
- Experto en Información
Informationen
- Beschreibung
- Ingeniería del Software (Tema 3) Mindmap am Patrones GRASP(Capa de Dominio), erstellt von David Castillo Reguera am 22/05/2019.
- Erstellt von
- David Castillo Reguera
- Aufrufe
- 4
- Bewertung
Mehr zu Análisis y diseño orientado a objetos