Tema 4: Diseño de la Capa de Datos

Anuncio
escuela técnica superior
de ingeniería informática
Diseño de la
capa de datos.
Patrón DAO
Departamento de
Lenguajes y Sistemas Informáticos
Ingeniería del Software II
DAO (Data Access Object)
• Definido como un “Core J2EE Patterns”
• Objetivo:
• Abstraer y encapsular todos los accesos a la
fuente de datos
• Características:
• DAO oculta completamente los detalles de
implementación de la fuente de datos a sus
clientes
• El interface expuesto por DAO no cambia
cuando cambia la implementación de la
fuente de datos subyacente (diferentes
esquemas de almacenamiento)
Estructura de DAO
BussinesObject
uses
DataAccessObject
encapsulates
DataSource
Creates/uses
Obtains/modifies
TransferObject
•
BusinessObject Es el objeto que quiere acceder a la fuente de datos para poder
almacenar o consultar datos.
•
DataAccessObject: Abstrae al BusinessObject de los detalles del acceso a la fuente
de datos.
•
DataSource: Representa la implementación de la fuente de datos en sí.
•
Transfer Object: es un objeto intermedio entre el BusinessObject y el
DataAcessObject
Participantes y responsabilidades
BussinesObject
DAO
DataSource
1: Create
2: Get Data
2.1: Get Data
2.2: Create
TransferObject
2.3: Return Object
3: Set Property
4: Set Property
5: Set Data
5.1: Get Property
5.2: Get Property
5.3: Set Data
Ejemplo
<<Class Model>>
domain
Cus tom e r
-customerID:String
-name :String
-surname:String
+getCustomerID ():String
+setCustomerID (customerID:String):void
+getName ():String
+setName (name:String):void
+getSurname ():String
+setSurname(surname:String):void
Created with Pos eidon for UML Com m unity Edition. Not for Com m ercial Us e.
Ejemplo
<<Class Model>>
data
<< interface >>
ICus tom e rDAO
+selectCustomer (customerID:String):Customer
+insertCustomer (c:Customer ):void
+deleteCustomer (customerID:String):void
+selectAllCustomers ():List
XM LCus tom e rDAO
JDBCCus tom e rDAO
JDBCConne ctionM anage r
uses
<< create >>+JDBCCustomerDAO ():JDBCCustomerDAO
+selectCustomer (customerID:String):Customer
+deleteCustomer (customerID:String):void
+insertCustomer (c:Customer ):void
+selectAllCustomers ():List
#finalize():void
-dBUri :String= "jdbc:mysql://127.0.0.1:3306/pos"
-driverName :String= "com.mysql.jdbc.Driver"
-passw ord:String= "practica"
-username:String= "practica"
<< create >>+ConnectionManager ():JDBCConnectionManager
+getInstance():JDBCConnectionManager
+checkOut():Connection
+checkIn(conn:Connection):void
#finalize():void
- cm
Created with Pos eidon for UML Com m unity Edition. Not for Com m ercial Us e.
Referencias
Patrón DAO:
http://www.programacion.com/java/tutorial/patrones2/8/
http://www.tic.udc.es/~fbellas/teaching/is/Tema2Apartado2.3.2.pdf
http://java.sun.com/blueprints/corej2eepatterns/Patterns/DataAccessObject.html
• ¿Podemos mejorar esta lección?
Mándanos un email a [email protected]
Descargar