开发者社区> 问答> 正文

怎么去抽象业务数据传输对象?

场景:订单系统
订单有自己的一套实体,OrderDO里面有orderId,orderPrice......
订单还和另外一个系统有关联,当生成一个订单的时候,同时也需要生成和对应系统的关系(一个orderId对应一条记录)RelativeDO,并且存储相应的data数据。
需求
现在需要提供一个接口,接口接受一个OrderId,订单系统返回给他一个数据结构。数据结构中需要有订单的信息和关系的一些信息(比如存储的data数据)
按照需求抽象出一个DTO用来承载数据,但是这个时候把订单的一些信息和存储的信息放在一个实体里面总觉得怪怪的。因为这几个字段根本没有关联呀。
screenshot
本来想通过组合的方式来将OrderDO和RelativeDO用组合的方式生成一个DTO并提供相应的接口。但是因为OrderDO自身的一些原因(OrderDO里面的数据结构很乱,这样做的话,每次取数据都需要对OrderDO进行深层次的遍历才能取到值,这样子没获取一个订单数据都要遍历一遍,效率很低)不能这么做。
但是跳出来想一下,这个DTO本来就是用来承载数据的一个抽象,所以就算里面有这些不相关的属性也没有关系。
该怎么解释这种现象,或者怎么去抽象这个场景下的DTO?

展开
收起
蛮大人123 2016-02-27 18:51:16 2249 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    扁平化起来就行了,不用组合两个,纯粹的DTO,不需要考虑关联不关联的。

    2019-07-17 18:49:15
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
蚂蚁聚宝虫洞项目技术方案介绍 ——云与端之间数据传输的桥梁 立即下载
“静态调用链路发现”应用场景分析及实践探索 立即下载
为并行图数据处理提供高层抽象/语言 立即下载