Download 1. Objetivo

Document related concepts
no text concepts found
Transcript
LABORATORIO JAVA
1. OBJETIVO
Los objetivos de este laboratorio son:



Comprender cómo se puede separar en clases diferentes el nivel de presentación y el nivel de
lógica del negocio.
Mostrar la utilidad de las interfaces Java, las cuales permiten que desde un objeto de una clase se
pida a un objeto de otra clase NO CONOCIDA en tiempo de compilación que ejecute un método
concreto (el nombre de este método sí será conocido porque estará definido en la interfaz Java).
Comprender también que es posible hacer tan independientes entre sí el nivel de presentación del
de lógica del negocio que no haga falta recompilar el nivel de presentación cuando se cambie la
lógica del negocio, y aún más, que sea posible hacerlo incluso en TIEMPO DE EJECUCIÓN.
2. TAREAS A REALIZAR
Crear una carpeta de trabajo donde almacenar los proyectos .jpr, los
fuentes .java, las clases .class, el workspace .jws, y los ficheros .html
1.- Crear un proyecto con una clase aplicación asociada (nombre de la clase: Lanzador). Asociaremos
también a esa aplicación un frame (la clase LanzadorFrame). Diseñar este último frame para que tenga
esta forma:
2.- Crear un nuevo frame (la clase Presentacion) que tenga la forma siguiente. Añadir también un
label (inicialmente sin texto) para que se puedan escribir mensajes (si se permite entrar en el sistema o si
se ha producido algún error)
3.- Programar el evento correspondiente al frame LanzadorFrame para que cuando se pulse el botón
“Ejecutar Presentación” se cree y se muestre el objeto de presentación (de la clase Presentacion)
4.- Programar el evento correspondiente al frame LanzadorFrame para que cuando se pulse el botón
“Asignar Lógica del Negocio” se le asigne al objeto de presentación el objeto con la lógica del negocio.
La lógica del negocio es sencilla: operación que permite o no la entrada a un sistema según un nombre de
usuario y un password. Para ello haremos lo siguiente:
a) Crear una interface Java (de nombre InterfaceLogicaNegocio) que contenga un método
llamado hacerLogin que acepte como parámetros 2 strings (nombre de usuario y password) y que
devuelva un valor booleano (true si permite hacer login y false si no).
b) Añadir un atributo al frame Presentacion para que permita almacenar el objeto con la lógica del
negocio y un método público setLogicaNegocio que permita asignar un objeto del tipo
InterfaceLogicaNegocio.
c) Crear una instancia de una clase cuyo nombre es el que aparece en la caja de texto del frame
LanzadorFrame. El objeto de esta clase (conocida en tiempo de ejecución) es el que se le asignará al
objeto presentación utilizando el método setLogicaNegocio. Para crear un objeto de una clase de
manera dinámica (sin conocer su nombre en tiempo de compilación) se puede usar el método forName
de java.lang.Object:
InterfaceLogicaNegocio intLN =
(InterfaceLogicaNegocio)Class.forName(jTextField1.getText()).newInstance();
// para crear una instancia de la clase cuyo nombre está en “jTextField1”
d) Escribir al menos dos clases (EntradaSistemaXXX y EntradaSistemaYYY) que
proporcionen implementaciones distintas a la interfaz InterfaceLogicaNegocio, esto es, al
método hacerLogin. Posibles implementaciones (por si no se os ocurren):
- que deje solamente entrar al sistema a un usuario con el nombre “invitado” y password “hola”;
- que no deje entrar a ningún usuario;
- que deje entrar a cualquier usuario.
5.- Programar los eventos correspondientes al frame Presentacion, para que cuando se pulse el botón
“Acceder al sistema” se pida al objeto con la lógica del negocio que ejecute el método hacerLogin con
los valores actuales que se encuentran en las dos cajas de texto y que escriba en la interfaz gráfica (por
ejemplo en un objeto Label que se añada al Frame) si nos han dado permiso para acceder al sistema, si no
nos lo han dado, o si todavía no se ha asignado el objeto con la lógica del negocio.
6.- Ejecutar la aplicación y probar cómo se puede cambiar la lógica del negocio del objeto presentación
EN TIEMPO DE EJECUCIÓN
7.- Ejecutar vuestro objeto de presentación con la lógica del negocio creada por otro grupo. Para ello:
a) Copiar el fichero .class (no el fuente .java) con la lógica del negocio del otro grupo en vuestro
ordenador. Por ejemplo en el directorio C:\otroGrupo\paqueteX, suponiendo que la clase la han
definido en el paqueteX.
b) Añadir en las propiedades de vuestro proyecto una nueva librería cuyos ficheros .class se encuentran
en C:\otroGrupo.
c) Ejecutar la aplicación y darle el nombre apropiado de la clase (sin olvidar el nombre del paquete).
Una vez que acabemos el laboratorio hay que eliminar del disco duro la
carpeta de trabajo con los proyectos .jpr, los fuentes .java, las clases
.class, y el workspace .jws