tag:blogger.com,1999:blog-4672718424022381865.post3614425947212049843..comments2022-09-22T15:57:39.670-07:00Comments on A piece of my code: Tres Amigos de Persistencia (DAO - DAOFactory - BO)Gabriel Solanohttp://www.blogger.com/profile/15936026176587418957noreply@blogger.comBlogger4125tag:blogger.com,1999:blog-4672718424022381865.post-46745258017855067892016-10-22T04:51:31.982-07:002016-10-22T04:51:31.982-07:00No me gusta el uso de reflexión en el factory, cue...No me gusta el uso de reflexión en el factory, cuesta mucho usarlo en tiempo de ejecuciónAnonimohttps://www.blogger.com/profile/05718398794131189907noreply@blogger.comtag:blogger.com,1999:blog-4672718424022381865.post-89891669059512026742014-03-26T11:48:33.165-07:002014-03-26T11:48:33.165-07:00Buen articulo, me fue de ayuda :)Buen articulo, me fue de ayuda :)Anonymoushttps://www.blogger.com/profile/03858256347572404411noreply@blogger.comtag:blogger.com,1999:blog-4672718424022381865.post-90218935321366531602013-03-25T23:31:39.452-07:002013-03-25T23:31:39.452-07:00buenabuenaAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-4672718424022381865.post-19558260992444687842010-03-04T15:46:18.175-08:002010-03-04T15:46:18.175-08:00Metiendo la cuchara
Iniciar, felicitandolo por el...Metiendo la cuchara<br /><br />Iniciar, felicitandolo por el articulo.<br /><br />Seguido, una critica y una observacion. Iniciemos por la ultima:<br /><br />Un objeto de transferencia (DTO) se trata de un objeto que se mappea de forma FISICA con el objeto que se persiste y se trata de un simple bean,<br />composicion de ellos o colecciones de los mismos. Dentro de los patrones J2EE, existe el View y el DTO, a continuacion un ejemplo que muestra la diferencia<br /><br />Supongamos que tenemos un recurso de datos del siguiente tipo<br /><br />Persona nombre : String <br />segundoNombre : String <br />apellidoUno: String <br />apellidoDos: String <br />apodo: String <br />fechaDeNacimiento: TimeStamp<br />cedula: long<br /><br /><br />El anterior pseudocodigo muestra como se debe almacenar fisicamente esos datos, pero quiza logicamente sea mas semantico algo como:<br /><br />class PersonaView {<br /><br /><br />private Long cedula; private String nombre; private Integer edad; private Date fechaDeNacimiento; }<br /><br />Y nuestro DTO (el objeto que retornara el DAO), podria mapearse asi<br /><br />class PersonaDTO {<br /><br />private Long cedula; private String nombre; private String segundoNombre private String apellidoUno; private String apellidoDos; private String apodo;<br />TImeStamp fechaDeNacimiento; }<br /><br />Ambos objetos son muy similares entre si; la diferencia radica en que el DTO representa la forma en como se almacenaran los datos, no importa el donde<br />se guardara, si no como. Por eso decimos que es fisico, pero quiza en las vistas y controlladores, que invoquen a los BO, queremos un objeto algo mas<br />logico, semantico y sencillo de usar y mostrar al usuario; un VIew<br /><br />Asi pues podriamos tener el siguiente codigo:<br /><br /><br /><br /><br /><br />PersonaBO {<br /><br /><br />PersonaView findByCedula (Long cedula) {<br /><br /><br />PersonaDTO dto = this.personaDAO.getPersona (cedula)<br /><br />PersonaView view = this.PersonaConverter.toPersonaView(dto)<br /><br />return view; }<br /><br /><br />}<br /><br /><br />el toPersonaView podria ser algo como:<br /><br /><br />toPersonaView (PersonaDTO dto) {<br /><br />PersonaView view = ....<br /><br />view.setNombre( dto.getNombre() + " " + dto.getSegundoNombre() + " " + dto.getApellidoUno() + " " + dto.getApellidoDos() + ", conocido como: " +<br />dto.getApodo()); view.setFechaDeNacimiento(this.toDate(dto.getFechaDeNacimiento()); .... }<br /><br /><br />Este enfoque, representa mas trabajo y mantenimiento, pues un nuevo atributo podria implicar cambios en todas las clases, sin embargo permite que los objetos que<br />tengan el rol logico, sean mas semanticos, que un simple DTO, ademas que desacopla ciertamente las capas.<br /><br /><br />Por ultimo, esta muy bien el asunto del Factory, pero de cara a los marcos actuales de desarrollo, se suele utilizar mas el enfoque de Ioc en lugar de<br />un Factory, aunque ya por esto no deja de ser valido el uso de este patron, al final la inversion de control, no es mas que un factory muy bonito.jsancahttps://www.blogger.com/profile/05654773123540648925noreply@blogger.com