
25/08/2006, 08:13
|
| | Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 21 años, 5 meses Puntos: 51 | |
Hola,
Clase Persona:
.- El constructor con un array no es buena idea, ya que entonces deberias comprobar la longitud que tiene, etc etc. Así como está, si pasas un array incorrecto te dara un error en tiempo de ejecución, de la otra forma estos errores se detectan en tiempo de compilación y eso es muy importante para hacer programas sólidos.
.- El metodo compareTo() que has implementado es exactamente la misma implementación que hace equals de la clase Object, así que no sirve de mucho. Normalmente el método equals (y compareTo) deberia tener un sentido lógico, si te hace falta, como que dos Persona son iguales si el nombre y los dos apellidos son el mismo, por ejemplo. Además de eso, hay que implementar el metodo hashCode para que sea coherente con esa estrategia. Si no, dos objetos con exactamente los mismos Strings pueden ser introducidos en el vector ya que exists() devolvera false aunque todos los datos sean iguales.
Contactos:
.- El tratamiento de ficheros deberias hacerlo en cada metodo, ya que guardar el fichero en si de una llamada a otra de un metodo no suele ser buena idea. Y mantener un fichero o Stream abierto a lo largo de varias llamadas y cerrarlo con otra llamada no es buena idea casi nunca.
.- A la hora de listar los contactos no hace falta copiar un vector en un array para recorrerlo. Vector, o cualquier otra coleccion, tiene metodos para recorrer todos sus elementos sin tener que hacer una copia en un array.
.- El tratamiento de errores no es "completo". Con esto quiero decir que hay errores que no se detectan que te causaran otros errores posteriores, errores que no se capturan y que haran saltar el programa etc. Lo mejor es detectar los errores cuantos antes, tratarlos al nivel que toca y tenerlos en cuenta para que el programa no se rompa descontroladamente si no que al menos notifique los errores como toca antes de pararse.
En este caso solo tratas un error, una IOException al intentar abrir el fichero, y en caso de que ocurra sales del programa. En algunos programas no podrás salir sin más, así que es mejor tratar el error, cerrar el PW si esta abierto etc etc. Ademas de que en el ultimo metodo, por ejemplo, no compila ya que no estas tratando las excepciones.
Poco a poco.
S! |