最近和头他们一起做一个管理系统(mvc3.0+NH)。写的代码里经常用到DTO,咱实在不知道DTO有啥用,也就照着他们那样做。问了他们也没问出个啥。直接对表操作不也行嘛。为啥要用到DTO呢,呵呵 ,可能低级了点 ,麻烦不要吝惜各位的文字,请教啦。

解决方案 »

  1.   

    在分部式架构中使用DTO,顾名思义,就是数据传输对象。如果没有用到分布式架构,直接使用Entity对象即可。
      

  2.   

    http://baike.baidu.com/view/160599.html去百度。
      

  3.   

    你可以找本Martin Fowler的书来看看
      

  4.   

    LZ的态度, 赞一个DTO 名解我就不说了,是出自名词王国(java)时常有过度设计的嫌疑。DTO 要和 PO 比较着看,同是数据结构载体,但意义却大相径庭。PO 体现了数据存储的结构,当相关接口所需数据恒等于 PO 时,可以放弃DTO但这种情况很少。 通常会是只传输PO的一部分,或者是多个PO的结合体。DTO 的意义是减少调用次数,尽量传递多的数据。分布式应用较多
      

  5.   

    其实从它的字面意思也可以猜出个大概来,它就是用来传输数据的,它跟实体的区别就在于实体本身还会包括一些自己的逻辑,例如有效数据的校验,持久化等……但DTO是不包括这些逻辑的,它只负责进行数据的传输。由于多用于分布式应用,所以一般要求DTO都是可序列化的,而实体则不一定。
    一般来说实体与DTO可以进行转化,也就是说实体中可能会有ToBe或ToDTO之类的方法。
      

  6.   

    主要解决层与层之间的数据转换。
    统一的DTO,使得层与层之间可以只依赖与DTO和接口。