Sesion01 Ejercicios
Sesion01 Ejercicios
Sesion01 Ejercicios
Java
Índice
1 Uso de interfaces (1 punto).......................................................................................... 2
2 Refactorización (1 punto)............................................................................................. 3
3 Documentación (0.5 puntos)........................................................................................ 3
4 Centro cultural (1 punto).............................................................................................. 3
5 Copia de propiedades con BeanUtils (0.5 puntos)....................................................... 4
Tenemos una aplicación para gestionar nuestra colección de DVDs, en la que podemos
añadir películas a la colección, eliminarlas, o consultar la lista de todas las películas que
poseemos. En esta aplicación tenemos una clase FilePeliculaDAO que nos ofrece los
siguientes métodos:
public void addPelicula(PeliculaTO p);
public void delPelicula(int idPelicula);
public List<PeliculaTO> getAllPeliculas();
Esta clase nos permitirá acceder a los datos de nuestra colección almacenados en un
fichero en disco. Siempre que en algún lugar de la aplicación se haga un acceso a los
datos se utilizará esta clase. Por ejemplo, si introducimos los datos de una nueva película
en un formulario y pulsamos el botón para añadir la película, se invocaría un código como
el siguiente:
FilePeliculaDAO fpdao = GestorDAO.getPeliculaDAO();
fpdao.addPelicula(pelicula);
La clase auxiliar GestorDAO tiene un método estático que nos permitirá obtener una
instancia de los objetos de acceso a datos desde cualquier lugar de nuestro código. En el
caso anterior este método sería algo así como:
public static FilePeliculaDAO getPeliculaDAO() {
return new FilePeliculaDAO();
}
Como la aplicación crece de tamaño decidimos pasar a almacenar los datos en una BD en
lugar de hacerlo en un fichero. Para ello creamos una nueva clase JDBCPeliculaDAO, que
deberá ofrecer las mismas operaciones que la clase anterior. ¿Qué cambios tendremos que
hacer en nuestro código para que nuestra aplicación pase a almacenar los datos en una
BD? (Imaginemos que estamos accediendo a FilePeliculaDAO desde 20 puntos distintos
de nuestra aplicación).
En una segunda versión de nuestra aplicación tenemos definida una interfaz
IPeliculaDAO con los mismos métodos que comentados anteriormente. Tendremos
también la clase FilePeliculaDAO que en este caso implementa la interfaz
IPeliculaDAO. En este caso el acceso a los datos desde el código de nuestra aplicación se
hace de la siguiente forma:
IPeliculaDAO pdao = GestorDAO.getPeliculaDAO();
pdao.addPelicula(pelicula);
2
Copyright © 2012-2013 Dept. Ciencia de la Computación e IA All rights reserved.
Ejercicios de Introducción al lenguaje Java
¿Qué cambios tendremos que realizar en este segundo caso para pasar a utilizar una BD?
Por lo tanto, ¿qué versión consideras más adecuada?
2. Refactorización (1 punto)
Ayuda
Resultará útil el menú Refactor de Eclipse. En él podemos encontrar opciones que nos permitan
hacer los cambios necesarios de forma automática.
Una vez hechos los cambios añadir el nuevo DAO JDBCPeliculaDAO y probar a cambiar
de un DAO a otro (si se ha hecho bien sólo hará falta modificar una línea de código). No
hará falta implementar las operaciones de los DAO. Bastará con imprimir mensajes en la
consola que nos digan lo que estaría haciendo cada operación.
El proyecto anterior tiene una serie de anotaciones en los comentarios que nos permiten
generar documentación Javadoc de forma automática desde Eclipse. Observa las
anotaciones puestas en los comentarios, las marcas @param, @return, @deprecated...
Genera la documentación de este proyecto (menú Project > Generate Javadoc...) en una
subcarpeta doc dentro del proyecto actual. Eclipse nos preguntará si queremos establecer
este directorio como el directorio de documentación de nuestro proyecto, a lo que
responderemos afirmativamente.
Añade comentarios Javadoc a las nuevas clases creadas en el ejercicio anterior y genera
nuevamente la documentación. Prueba ahora a escribir código que utilice alguna de las
clases de nuestro proyecto, usando la opción de autocompletar de Eclipse. Veremos que
junto a cada miembro de la clase nos aparecerá su documentación.
3
Copyright © 2012-2013 Dept. Ciencia de la Computación e IA All rights reserved.
Ejercicios de Introducción al lenguaje Java
También podemos encontrar una serie de documentos con las normas e información sobre
el centro de los que guardamos su título, fecha de publicación y texto. Tanto estos
documentos como los libros se podrán imprimir (en el caso de los libros se imprimirá el
título, los autores, y el capítulo de muestra, mientras que de los documentos se imprimirá
su título, su fecha de publicación y su texto).
Escribe la estructura de clases que consideres adecuada para representar esta información
en un nuevo proyecto lja-centrocultural. Utiliza las facilidades que ofrece Eclipse
para generar de forma automática los constructores y getters y setters necesarios.
4
Copyright © 2012-2013 Dept. Ciencia de la Computación e IA All rights reserved.
Ejercicios de Introducción al lenguaje Java
5
Copyright © 2012-2013 Dept. Ciencia de la Computación e IA All rights reserved.