模型Model和DTO/VO的区别

模型Model和DTO/VO的区别

在EJB应用中,经常会需要传输数据,所以我们需要DTO模式,但是在系统还没有复杂到一定程度时,我们碰到的基本是Model,是Model作为DTO,比如一个数据对象Product的增删改查,Session Bean传递给实体Bean的Product用来保存数据库,这个Product是一个Model,同时又是一个DTO。

那么我们在系统开始时,是以Model开始还是以DTO开始?

当然应该是Model,Model能够反应应用系统的很多本质,如果都使用DTO,将为了传输数据而组合一个对象,结果这个DTO对象的属性可能很混乱,最后在界面实现时或后台实现时,常常为这个DTO对象缺少一两个字段而烦恼。

以Model为驱动符合MDA思想,可以非常方便地实现整个复杂J2EE系统。

可以用VO作为SessionBean和EntityBean传递数据的载体,不必每个字段都赋值吧。所以我在项目中都是先定义VO,也就是“为了传输数据而组合一个对象”。
这样必须将VO定义为轻量级的(只有get/set),用起来感觉很方便。

小弟没写过EJB,看你的描述就是个Bean啊,怎么又多了个奇怪的名字啊?哈哈,请多指教。