Por ello estuve buscando por Internet, (ya saben Google). Entre las paginas que visite la que se destacó como casi siempre fue Stack Overflow (muy buen foro de preguntas).
En fin la respuesta que casi siempre obtuve fue la siguiente, una agregación es una relación entre un todo y sus partes en las que las partes pueden existir sin el todo, y una asociación, una relación débil entre las partes que indica que ambas colaboran entre sí.
Bueno a mi me parece que es una buena definición si estas creando una Ontología. Sin embargo, si lo que estas creando un diseño creo que pueden existir otras formas de pensar al respecto.
La clave a la solución me llegó cuando estaba desarrollando un modulo para crear una lista de estudiantes de un hipotético sistema de administración de exámenes.
Por ejemplo, digamos que queremos un Examen, que es mejor hacer:
Profesor.getExamen () o Estudiante.getExamen ()
Si hacemos Estudiante.getExamen () necesitamos primero la lista de todos los estudiantes, digamos Matricula.getEstudiante () y así encontramos los estudiantes, después de todo una matricula tiene un conjunto de estudiantes, luego seleccionamos un estudiante y decimos Estudiante.getExamen ().
Eso parece bien excepto por el hecho de que el estudiante pudo no haber asistido al examen, entonces tendríamos que pasar al siguiente estudiante y así sucesivamente.
Sin embargo si decimos Profesor.getExamen () pueden ocurrir dos cosas, una regresa null, pero eso indicaría que no existe aun el examen, o nos regresa el examen.
Esto me parece se debe a que quien tiene la responsabilidad de darnos el Examen es el Profesor, es decir a el es a quien se le pide el examen, ya sea para agendarlo y administrarlo posteriormente o para que el propio estudiante obtenga el examen si este es administrado por el propio profesor.
Ahora bien, es cierto que al principio el examen es en realidad un cuestionario, pero aún así a quien le debemos preguntar quien asistió o no al Examen es al administrados, no a cada estudiante
No hay comentarios:
Publicar un comentario