漫谈DTO(Data Transfer Object) 和VO(Value Object)

DTO -- Data Tranfer Object 

  DTO最基本的作用是容器类,用来把一个层的数据组装后,一次性带往上一层或下一层。目的是减少不同层之间的交互,提高效率。比如,可以将订单基本信息OrderInfo 和 对应的Payment 信息放在一个大的OrderDTO中,可以从数据库中一次性load。

  也可以用在远程调用时,一次性在远程把数据准备好,用DTO返回,避免多次调用远程服务,提高吞吐量。

  DTO在创建时,可以考虑将嵌套对象引用改造为基本类型。

 

VO-- Value Object

主要的特征是 value是其核心,如果两个 objects的value相等,则认为两个objects是相等的,比如 Money。

 

实际上 有些地方VO和DTO是混用的,只是Martin Fowler的书里,把Value单独放在了一种scenario中。

 

posted @ 2020-08-22 19:32  山猫上山  阅读(406)  评论(0)    收藏  举报