[size=large]Hello,大侠们,我对DTO/VO有个问题:
我觉得 HashMap 相当方便,啥都能装,而且也可以获取里面的所有键和值,还不用反射,也不用写啥GenericDTO了。那么用DTO的好处在哪呢(分为分布式和非分布式B/S)?[/size]
要对比性能问题的话,这个就要具体情况去测试才行
应该这么说,hashmap的灵活性比javabean强太多,它的key可以是任意的,而javabean定义了就无法修改,对于要求灵活性和可扩展性的系统应该选择hashmap
DTO,这个历史遗留模式,它本身就是多余的一层封装,如果系统本身设计得很好,其实是不会出现什么DTO的,
当然它也是有应用场景的嘛,比如GenericDTO,利用泛型就能针对不同的类型都写在一个DTO里,不需要类型转换,
如果是hashmap的话,key-value的方式,还是都要类型转换的,
DTO,从它的意思上就是数据传输对象,也就是VO值对象,说白了就是本身不带业务逻辑方法的纯数据,这个dto在几年前还算是比较流行的一种设计模式,但现在至少我做的项目里很少有它的影子在了,
其实关键是看你的系统架构是怎么分层的,到底需不需要在实体对象上封装这么一层DTO