Foros del Web » Programación para mayores de 30 ;) » Java »

Confuso aplicando la orientación a objetos a un programa

Estas en el tema de Confuso aplicando la orientación a objetos a un programa en el foro de Java en Foros del Web. Tengo que hacer un programa con las siguientes características: Cita: El sistema permitirá crear un listado de invitados, el cual será consultado por el portero ...
  #1 (permalink)  
Antiguo 26/11/2011, 09:57
 
Fecha de Ingreso: octubre-2011
Mensajes: 58
Antigüedad: 12 años, 7 meses
Puntos: 0
Confuso aplicando la orientación a objetos a un programa

Tengo que hacer un programa con las siguientes características:

Cita:
El sistema permitirá crear un listado de invitados, el cual será consultado por el portero cada vez que llegue una persona, puede éste buscar a los invitados por nombre o por apellido. Una vez finalizado el evento, podrá extraerse información estadística acerca de la asistencia al evento.
Las identidades u objetos que he identificado son Usuario (que podría una clase de la que hereden Administraador y Portero o podrían crear se por separados), Eventos, Invitados, una clase para la conexion a base de datos y la parte gráfica.

Bueno, el problema es que realmente no sé para qué me servirá crear clases Portero, Administrador, Eventos e Invitados. Porque todo eso lo puedo hacer directamente con la Base de datos. Me explico: si tengo que insertar un nuevo invitado, en el programa lleno los campos (nombre, apellido, telefono, etc) y cuando le de al boton Insertar, por ejemplo, entonces el evento llama al método para insertar en la base de datos obteniendo los datos de los textfield con getText(), lo mismo cuando tenga que marcar un invitado que llegue y lo mismo para eliminar o modificar invitados y eventos.

Entonces, realmente necesito crear clases invitados, eventos y usuarios? para qué servirían?
__________________
La libertad más difícil de conservar es la de equivocarse. - Morris Wes

Lo que faltaba en internet: http://binar10s.blogspot.com/
  #2 (permalink)  
Antiguo 26/11/2011, 10:36
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Confuso aplicando la orientación a objetos a un programa

Hola:

Habría mucho que hablar sobre el tema, pero una forma habitual de relacionar clases y bases de datos es que cada clase corresponde a una tabla de base de datos.

Si en tu base de datos tienes tablas para invitado y evento, sí tiene cierto sentido tener clases Invitado y Evento para tener en tu código java cada uno de los registros que hay en esas tablas.

Usuario tiene menos sentido si no tienes pensado almacenar en base de datos a los porteros y administradores (su nombre y password de acceso al sistema, por ejemplo).

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 26/11/2011, 11:11
 
Fecha de Ingreso: octubre-2011
Mensajes: 58
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Confuso aplicando la orientación a objetos a un programa

Sí, en la base de datos van todas las identidades igual que las clases: Eventos, Invitados, Invitaciones (que relaciona los eventos con los invitados)

Pero lo que no entiendo, es cuál sería el uso de esa clases?
__________________
La libertad más difícil de conservar es la de equivocarse. - Morris Wes

Lo que faltaba en internet: http://binar10s.blogspot.com/
  #4 (permalink)  
Antiguo 26/11/2011, 11:21
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Confuso aplicando la orientación a objetos a un programa

Encapsulación y reutilización.

Al final de cuenta donde ves las virtudes de la POO es a la hora de hacer cambios a un software. Si lo haces como tienes pensado y luego el requerimiento cambia, tendrás que cambiar muchas cosas.
Usando clases y demás, hasta podrías mover esa aplicación a un entorno web por ejemplo con cambios mínimos (solo habría que crear la parte web, los modelos permanecen igual).
  #5 (permalink)  
Antiguo 26/11/2011, 11:37
 
Fecha de Ingreso: octubre-2011
Mensajes: 58
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Confuso aplicando la orientación a objetos a un programa

Es que para mí, eso sería complicar el diseño. Pero así es como tengo que hacerlo.

Entonces, cómo podría por ejemplo crear un invitado cada vez que se presione el botón Insertar, por ejemplo y después cómo meter ese objeto invitado en una base de datos?

Porque si es directamente como lo tenía pensado, no es mucho problema, pero se complica más al crear otras clases.
__________________
La libertad más difícil de conservar es la de equivocarse. - Morris Wes

Lo que faltaba en internet: http://binar10s.blogspot.com/
  #6 (permalink)  
Antiguo 26/11/2011, 16:38
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Confuso aplicando la orientación a objetos a un programa

Hola:

new Invitado() y le rellenas los datos.
Además insert into .... invitado.getNombre() ,....

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #7 (permalink)  
Antiguo 26/11/2011, 17:59
 
Fecha de Ingreso: octubre-2011
Mensajes: 58
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Confuso aplicando la orientación a objetos a un programa

Bueno, creo que ya tengo una idea. Realmente es la misma que tenía al principio, solo que ahora, como has dicho chuidiang sé darle una utilidad aunque sea mínima a esas clases.
__________________
La libertad más difícil de conservar es la de equivocarse. - Morris Wes

Lo que faltaba en internet: http://binar10s.blogspot.com/
  #8 (permalink)  
Antiguo 26/11/2011, 22:21
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Confuso aplicando la orientación a objetos a un programa

La orientación a objetos es principalmente una forma de hacer que un programa sea fácilmente modificable/mantenible en un futuro y de conseguir que su código se pueda reutilizar más adelante en otros programas. Cobra sentido por tanto en programas más o menos complejos en los que más adelante va a haber que aumentar su funcionalidad o en la que hay partes que pueden interesarnos para otros programas y queremos hacerlas suficientemente separadas.

Como bien parece que intuyes, para un programa simple muchas veces usar orientación a objetos no es más que matar moscas a cañonazos.

En tu ejemplo, una clase que podría ser útil para otros programas podría ser lo que se llama un DAO (Data Access Object). Sería una clase con métodos insertInvitado (Invitado), updateInvitado(Invitado), deleteInvitado(Invitado) y getInvitados() que haga las transaciones con base de datos.

Obviamente, sólo para tu programa no tiene una utilidad especial. Pero sí es útil en un programa más complejo donde se hagan transaciones con invitados desde muchos sitios del código y también es útil si en un futuro tienes previsto hacer otro programa de otro tipo pero que casualmente tenga una tabla invitados en BD, bastaría con llevarte esa clase DAO y la clase Invitado para tener ya parte del código hecha.

Se bueno.
__________________
Apuntes Java
Wiki de Programación

Etiquetas: objetos, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 17:51.