1 / 32

CS-434: Programación Orientada a Objetos usando Java Semana 5

CS-434: Programación Orientada a Objetos usando Java Semana 5. Dr. Jesús Borrego Adjunct Faculty Regis University. Temas. Examen 1 Capítulo 15 Serializacion de objetos Manejo de archivos Tarea. Exámen 1. Serialización. Corresponde al movimiento del estado de un objeto a su destino

Download Presentation

CS-434: Programación Orientada a Objetos usando Java Semana 5

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CS-434: Programación Orientada a Objetos usando JavaSemana 5 Dr. Jesús Borrego Adjunct Faculty Regis University

  2. Temas Examen 1 Capítulo 15 Serializacion de objetos Manejo de archivos Tarea

  3. Exámen 1

  4. Serialización Corresponde al movimiento del estado de un objeto a su destino Estado: los miembros de datos pero no los métodos Cuando el objeto es serializado, el valor de los miembros de los datos se obtienen del objeto y se envían a su destino El proceso también se llama ‘Marshaling’

  5. Serializacion - 2 Cuando el objeto es serializado (marshaled, deflated) puede ser recreado bajo un proceso llamado deserializado (unmarshaling, inflating) El objeto deserializado es una copia exacta del objeto original desde cuando salió al ser serialziado

  6. Razones El procesoestípicamenteutilizadopor dos razones: Para conserver el estado de un objeto a un archive Para mandar el estado de un objeto a otraaplicación

  7. Ejemplo JohnDoe pide prestado 2 libros con su cuenta general y uno con su cuenta de negocios

  8. ¿Como serializar la transacción? Usamos la interfaz Serializable Serializamos/Deserializamos la gráfica del objeto con ObjectOutputStream/ObjectInputStream Opcionalmente, podemos usar una fábrica (Factory) para instanciar el servicio

  9. Interfaz Serializable ‘Marker’ Para poderserializar un objeto, Java requierequesuclaseimplementela interfazSerializable (localizada en el paquete java.io): public interface Serializable { } La interfaz no contienemétodos – el paqueteesvacio, por lo que se llama Marcador (Marker) El propósitoes de indicarquees ‘uno de ellos’ sin proveercomportamiento

  10. Ejemplo

  11. Modificaciones requeridas public class User implements Serializable {…} public class Account implements Serializable {…} public class Loan implements Serializable {…} public class Book implements Serializable {…}

  12. Notas • Solo se puedeserializarmiembros de datosque no son estáticos • A menosque se declarenmanualmente • Java prove la clave ‘transient’ para denotarmiembros de datosque no debeserserializados (para protegerdatossensitivos): private transient String sensitiveData = “_”;

  13. Invocando serialización de objetos Cuandoclases son marcadas con la interfazSerializable, susobjetospuedenserserializados y deserializados con ObjectOutputStream y ObjectInputStreamrespectivamente Las clases se encuentran en el paquete java.io Ejemplo: Para serializar un objeto, ObjectOutputStreamprovee el siguientemétodo: void writeObject ( Object obj ); El métodorecibeunaclase Object (clase primal) para serializarcualquierobjecto

  14. Deserializando Para deserializar el objeto, ObjectInputStream prove el método Object readObject ( ); El métodoregresa un objeto Para poderusar el objeto, necesitamosconvertir el tipo del objeto (type cast) usando la claseque se esperarecibir del proceso

  15. Ejemplo Si un objeto User fuéserializado, la deserializaciónpuede producer un objeto User también El procesoes: ObjectInputStreamois = new ObjectInputStream ( … ); User user = ( User ) ois.readObject ( );

  16. Actividad 1 Ejemplo de Serialización: http://www.youtube.com/watch?v=YzwiuRDgSSY (11:22 min.)

  17. Diseño de Servicios de Aplicación Los Servicios con piezas de funcionalidad reusables que necesita la lógica de negocios de la aplicación Los servicios varían de una aplicación a la otra y aque las reglas del negocio también varían Ejemplos Servicio de autenticación y autorización de clientes

  18. Ejemplos de Servicios Servicio de autenticación y autorización de clients Servicio de mensajes para mandarlos a usuarios Servicio de clientes para el manejo de clients Servicio de pago para recibir pagos de clients Servicio de compras para la gestión de compras

  19. Conceptos involucrados El movimiento de objetos dentro y fuera de la aplicación son definidos en la capa de dominio de la aplicación Escondiendo decisions de una tecnología particular (serialización, lógica de base de datos, comunicación entre procesos) ¿Que forma tiene el servicio?

  20. Interfaz Separada

  21. Ejemplo de libros Para añadir un libro a la biblioteca: package services; import domain.*; public interface iBookSvc { public Bood add (Book book ) throws Exception; } Guardamos el servicio en el paquete services Importamos el paquetedominio para tenervisibilidad a Book El nombreiBookSvcdenota la interfaz El método add ( ) regresa el librocreado

  22. Implementación del Servicio package services; import java.io; import domain.*; public class BookSvcSerializedIOImpl implements IBookSvc { public Book add (Book book ) throws Exception { FileOutputStream fos = new FileOutputStream (“somefile”); ObjectOutputStream oos = new ObjectOutputStream ( fos ); oos.writeObject ( book ); oos.flush ( ); oos.close ( ); return book; } }

  23. Patrón de diseño de Fábrica El patrón de diseño de fábricanospermiteinstanciar la capa de servicios Service Esútilquitarlasreferencias a la implementación de servicios El códigoqueusa el servicio no se da cuentaqueusó la implemetación, solo la interfaz

  24. Capa de Negocios La capa de negocios (Business Layer) se implementa usando servicios de la capa de servicios Para agregar libros a la biblioteca, podemos usar BookMgr con método addBook

  25. package business; import services.*; import domain.*; public class BookMgr { public Book addBook ( Book book ) throws Exception { Factory factory = new Factory (); IBookSvc bookSvc = factory.getBookSvc(); return bookSvc.add ( Book ); } }

  26. Funciones de BookMgr Declarar que lanza la excepción Instanciar Factory para tener acceso a IBookSvc Invocar iBookSvc para añadir in libro a la biblioteca Regresa los resultados a quien lo invoca No tiene visibilidad a la implementación del servicio

  27. Autenticando Usuarios package business; import services.*; import domain.*; public class AuthenticationMgr{ public Boolean authenticate ( Login login ) { //código se incluye } }

  28. AuthenticationMgr.authenticate public Boolean authenticate ( Login login ) { User user = null; try { Factory factory = new Factory(); IUserSvc usersvc = factory.getUserSvc(); user = userSvc.findUser (login.getUsername()); } catch ( Exception s ) { //excepción } if ( user = null ) return falsel return true; }

  29. Actividad 2 Ejemplo de ArrayList en YouTube: http://www.youtube.com/watch?v=K1G1E9TWUVk (14:18 min.)

  30. Tarea 5 • Implementar ArrayList en el GUI para agregar los libros y mostrarlos en la pantalla • ArrayList debe incorporar Book • Entregar a WorldClass antes de la semana 6 – el proyecto NetBeans y el document con captura de pantallas

  31. ¿Preguntas? Email to jborrego@regis.edu

More Related