DTO,Data Transfer Object.在以前的开发探讨中,我曾经认为DTO必须和PO(持久化对象)划清界线,要单独构建类.
从分层开发讲,DTO负责层间的数据传递,是必不可少的,但实际开发经验告诉我,大量的只有属性的DTO对象的存在,虽然把开发分层的清清楚楚,
然而这些DTO类却又的确贫血,不但使代码量急剧增加,而且随着数量的增大,DTO的类命名和属性命名也会难以规范.
其实象Hibernate这样的持久化框架,其PO已经是足够简单的POJO对象,可以设法利用其PO类构建DTO使用.请注意虽然这么做了,但从概念上DTO和PO仍然属于不同层,后者才是操作数据库的.
以前就有人这么尝试过,不过会遇到一个问题:就是在进行DTO到PO的属性拷贝时,无法区分哪些属性需要拷贝,哪些不需要.
这个问题其实可以解决的,用PO类构造DTO时,我们可以先对DTO的所有属性设置无用的初始值,然后再针对部分属性设置进前台传递的业务数据,这样就构造好了一个DTO对象了.在进行DTO到PO的属性拷贝时,可略过那些带无用初始值的属性,只拷贝带业务数据的属性.
使用了PO类来构造DTO,使我现在项目的代码精简了很多.