数据传输对象有助于最小化对远程对象的调用

时间:2012-07-15 18:43:00

标签: design-patterns architecture

我读过使用DTO的主要原因之一是尽量减少服务层和远程前端之间的往返。最小化往返本质上意味着减少服务方法调用的数量,这通过在每次调用时传输更多数据来完成。

a)但是,通过具有大量参数的服务方法还能否实现往返减少?

b)DTO是否能够比具有大量参数的服务方法减少往返次数?如果有,怎么样?如果不是,那么我不太明白如何减少往返次数是使用DTO的主要原因之一?

谢谢

2 个答案:

答案 0 :(得分:2)

我们没有任何背景信息,因此您所阅读内容的作者可能意味着其他内容,但在这种情况下,DTO确实可以减少从表示层到服务层的往返次数。

假设您有一个页面,您必须列出用户,并为每个用户显示用户发布的答案数。并假设您的页面列出了10个用户。

如果您不使用DTO,则必须调用方法来获取有关10个用户的信息。对于每个用户,您必须调用第二种方法来获取他发布的答案数量。这使得11个方法调用。

如果你使用一个DTO来保存关于用户的信息,就像他的答案数量一样,你可以调用一个方法来获取10个用户的列表,并立即获得所有信息。

请注意,返回10个用户的列表,每个用户都包含其发布的答案列表,这不是一个选项,因为您将加载大量信息(每个用户的2453个答案),只是为了显示答案的数量。 / p>

答案 1 :(得分:1)

除了JB Nizet在他的回答中提到的,我们一直在使用DTO来减少客户端和服务器之间传输的数据量。其中一种情况是我们需要一些参考数据或查找数据。对于例如如果我们有一个国家的只读集合,在视图或某种前端显示国家/地区列表,我们不需要每次都通过国家/地区列表。我们可以缓存集合,DTO可以用来只传递selecetd值。 DTO可以具有国家代码,例如“US”,“GB”,“IND”等,或者某些唯一的数值,它们与coutry代码相对应。在客户端,您可以使用映射器将代码映射到UI小部件的选定值,如下拉列表。

相关问题