TP1-G4

Resultado: Aprobado. Realicen las modificaciones que les indique.

- Organizacion en subpaquetes.

Por lo gral se hace un paquete para las exceptions. En el caso que sean muy especificas, puede hacerse un subpaquete donde estan esas las clases en particular.

Lo mismo para el resto de las clases.

- La documentacion es clara en cuanto a los diagramas.

En el diagrama de clases, solo hay relaciones de composicion, estaria bueno poder ver relaciones de uso tambien.

No figuran relaciones como la doble referencia entre Evento-AsistenciaEvento

Sv1 - Javadoc, ninguna clase lo tiene!!! Agreguenlos tanto para las clases como para los metodos.

En cuanto a las clases, comenten para que estan y cual es su responsabilidad.

- #ComentarioEvento (Su nombre seria mejor simplemente Comentario)

Cual es el sentido de tener encapsulado este concepto en un objeto si tiene solo visibilidad desde el Evento?

Con esto estan limitando a que el comentario sea solo texto.

El metodo agregarComentario() podria recibir un ComentarioEvento ya instanciado y no exponer el estado. Por otro lado desacoplarian la creacion de estos Comentarios a otro lado.

- #SuscripcionException

El nombre de la exception no habla de cual fue el problema de esta exception. En gral una exception asi es abstracta y las subclases detallan en su nombre algo referido a un problema en particular.

Por ejemplo: SubscripcionDuplicadaException o SubscripcionFueraDeFechaException.

- #Subscripcion

Cual es el proposito del atributo estaActivo?

Al cancelarse una subscripcion no hace falta seguir teniendola relacionada al evento.

Con esto evitan preguntar en todos lados por ese valor y el caso de si un usuario esta subscripto o no, lo resuelve el evento si lo tiene dentro de sus usuarios registrados.

Lo mismo para el metodo #Usuario.eventosSuscriptos().

- #AsistenciaEvento

Es necesario mantener una doble referencia entre Evento-AsistenciaEvento solo para encapsular una collection de usuarios?

Si se fijan, esta clase no tiene otra responsabilidad que la de manejar la asistencia y tiene el mismo ciclo de vida que el Evento. Podrian reducir la complejidad moviendo esto al Evento.

Analizandolo un poco mas, podria delegarse en este objeto la asistencia, pero sin la necesidad de tener una referencia al Evento, que solo lo usan para loguear.

Remuevan eso y esta todo ok.

Cualquier cosa avisenme por mail!

Saludos.