* #1569 DTO pattern implemented using Enums * #1569 DTO pattern implemented using Enums * #1569 adding some java docs * #1569 some changes in java doc and code style * #1569 some changes in java doc and code style * #1569 some changes in java doc and code style * #1569 some changes in java doc and code style * #1569 adding suggested extra line * #1569 license added to pom.xml * #1569 more checkstyle problems resolved * #1569 more checkstyle problems resolved * #1569 more checkstyle problems resolved Co-authored-by: siavashsoleymani <siavash.soleimani@snapp.cab> Co-authored-by: Subhrodip Mohanta <subhrodipmohanta@gmail.com>
2.2 KiB
layout, title, folder, permalink, categories, tags
layout | title | folder | permalink | categories | tags | |
---|---|---|---|---|---|---|
pattern | Data Transfer Object | data-transfer-object | /patterns/data-transfer-object/ | Architectural |
|
Intent
Pass data with multiple attributes in one shot from client to server, to avoid multiple calls to remote server.
Explanation
Real world example
We need to fetch information about customers from remote database. Instead of querying the attributes one at a time, we use DTOs to transfer all the relevant attributes in a single shot.
In plain words
Using DTO relevant information can be fetched with a single backend query.
Wikipedia says
In the field of programming a data transfer object (DTO) is an object that carries data between processes. The motivation for its use is that communication between processes is usually done resorting to remote interfaces (e.g. web services), where each call is an expensive operation. Because the majority of the cost of each call is related to the round-trip time between the client and the server, one way of reducing the number of calls is to use an object (the DTO) that aggregates the data that would have been transferred by the several calls, but that is served by one call only.
Class diagram
Applicability
Use the Data Transfer Object pattern when:
- The client is asking for multiple information. And the information is related.
- When you want to boost the performance to get resources.
- You want reduced number of remote calls.