ricardospinoza:
Olá,
Estou estudando java e gostaria de fazer um programa controlar agendamento de consulta ao médico (uso particular).
A idéia é manter um histórico de consultas médicas, e notificar quando haverá a próxima consulta.
Pensei a principio em três objetos Medico, Paciente e Consulta (em anexo)
Gostaria de alguma dicas práticas de modelagem… a classe Consulta seria candidata a uma coleção? a ligação entre Medico -> Consulta e Paciente -> Consulta seriam agregações?
Modelar significa pensar e exercitar abstractamente o sistema.
A consulta é a relação entre o médico e o paciente ? O paciente tem consultas ou o médico tem consultas , ou nenhum dos dois tem? Um médico pode ter consultas com mais do que um paciente ? E um paciente com mais do que um médico ? Cadê o agendamento ? A consulta é o agendamento ? Consulta é uma coleção de quê ?
Se a consulta não estiver relacionada a um médico e/ou paciente ela existe ?
Respodendo a estas questões vc identifica a resposta às suas perguntas.
A consulta não é uma coleção de coisa nenhuma. A consulta é um evento. É uam reunição entre o medico e o paciente num certo horario e local para falar/identificar certo problema.
O historico do paciente sim é uma coleção, com todas as consultas que aconteceram para ele.
O médico (a secretária do médico) faz o agendamento da consulta, mas a consulta pode não acontecer. O agendamento pode ser cancelado, adiado, adiantado , etc… O agendamento consome um numero de horas do médico de forma que não existam demasiadas consultas por dia. O agendamento é em nome de alguem, mas o consultado pode ser outrem ( a mae marca consulta para o filho)
Vc tem que realmente exercitar os cenarios. Se vc não conhece os cenários passe um tempo num consultório observando como funciona. Fale com médicos. etc… em 3 palavras : levantamento de requisitos.