Consulta sobre ejercicio de clases

Responder
Mensaje
Autor
Masakre
Mensajes: 249
Registrado: 06/06/2012 10:52 am

Consulta sobre ejercicio de clases

#1 Mensaje por Masakre » 23/11/2013 3:11 pm

En síntesis, lo que el enunciado me pide es crear clases o interfaces para estas entidades: personas, empleados, médicos y pacientes.

Los empleados pueden contratarse de 2 formas (por Planilla o de forma Eventual), entonces haré que 2 clases hereden de Empleado. Pero además me indica que un Médico es un tipo especial de Empleado.
¿Debería crear una clase Médico que herede también de Empleado, al mismo nivel que las clases que catalogan a los empleados según la forma en que fueron contratados? Podría considerarlo así para simplificar, porque no menciona de que un Médico pueda contratarse por esas modalidades. Además dice que los empleados son personal administrativo y los médicos son los que atienden a los pacientes. Visto de ese modo, no serían un tipo de empleado, porque están considerando Empleado como PersonalAdministrativo.

Pero esa no es mi duda central. Mi duda central es respecto a este inciso:
b) Registrar los datos de una cita médica.
En el 1er examen tuve que crear una clase Cliente, y una clase Libro, para relacionarlas (era un sistema como de biblioteca). Pero cuando me pedían ver una "lista de libros solicitados", a pesar que logré implementarlo, siempre tuve la duda de si eso debería ir en un atributo boolean de Libro como "prestado" o en un vector de librosPrestados dentro de la clase Cliente. Además, luego pensé que una biblioteca podría tener también varios libros iguales y prestarlos a distintas personas. Estuve pensando en crear una clase SolicitudLibro.

Y para este ejercicio tal vez una clase CitaMédica. Pero, ¿cómo es la mejor forma de relacionar esto?
Nuestra docente no es nada práctica... es pura teoría, pero no nos enseña a cómo deberíamos pensar los ejercicios. Tal vez CitaMédica podría ser una clase interna de Médico, o de Paciente, o tal vez ir aparte... o tal vez no debería existir y haya otra manera de manejar esto.

¡ ¿Qué es lo más adecuado? !

Por favor, si alguien conoce como tratar estos casos, ayúdeme que le estaré muy agradecido.

polly
Mensajes: 619
Registrado: 19/07/2007 3:42 pm
Ubicación: Valladolid (Spain)
Contactar:

#2 Mensaje por polly » 29/12/2013 10:24 am

Un poco tarde la respuesta, pero puede servirle a alguien que tenga una duda similar.

La primera parte (clases e interfaces)

Yo lo haría así: las clases Médico y Paciente heredarían de la clase Persona (ambos son personas ¿no?) y Médico implementaría la interfaz Empleado (ser un empleado suena mas a una funcionalidad añadida de las personas ... ademas en Java no hay herencia múltiple).
Por otra parte, el asunto de la contratación: podrías crear clases y aumentar la jerarquía, pero yo creo que una solución más simple sería usar variables (porPlantilla y formaEventual o algo asi) ya que no nos piden mucho más.

En cuanto a lo de registrar los datos de una cita médica, puedes usar una lista en Médico y guardarlas allí (como objeto Cita).

Algo de pseudocódigo:

Código: Seleccionar todo

Empleado e = new Medico("Ada");
Paciente p1 = new Paciente("Alan");
Paciente p2 = new Paciente("Alonzo");

Cita c1 = new Cita(e, p1, "Lunes por la mañana");
Cita c2 = new Cita(e, p2, "Lunes por la tarde");
e.addCita(c1);
e.addCita(c2);
No es perfecto, pero es una forma de empezar a diseñarlo.
enrmarc

Masakre
Mensajes: 249
Registrado: 06/06/2012 10:52 am

#3 Mensaje por Masakre » 15/01/2014 12:08 pm

Quería responderle desde hace mucho, pero mi servicio de internet anduvo mal por varias semanas, menos mal que ya lo solucionaron.

El trabajo lo presenté ya hace algunos meses, pero sigo teniendo cierta duda.

El enunciado tiene 2 variantes. La primera nos entregó la profesora como una práctica (de alguna manera nos serviría para repasar para el examen), y la segunda variante es el examen mismo, que traía más requerimientos.

En la primera variente, el enunciado me pedía ingresar una opción para listar las citas reservadas con cada médico. Entonces cree un arreglo de objetos "CitaMedica" como atributo de instancia de la clase Medico. Así sería sencillo mostrar las citas asociadas a cada uno.

En la segunda variante, pedía hacer lo mismo pero también con relación a los pacientes. Entonces guardé las citas tanto en los médicos como en los pacientes.

Esa redundancia es la que creo que está mal, es decir, bastaría con guardar los datos en los médicos, ya que cada objeto de la cita médica guardaba el código del médico, el código del empleado que asignó la fecha para la cita y el DNI del paciente.
El punto es que, si yo no guardaba la información en los pacientes también, tendría que recorrer los arreglos de citas de cada médico buscando por las citas que correspondan a un paciente en específico.

Y me preguntaba si había alguna forma convencial de tratar estos casos...

Muchas gracias por su ayuda.

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados