1.定義
DataTransferObject、データ転送オブジェクト)はプロセス間でデータを伝達するオブジェクト
2.なぜ使用しなければならないのか?
1)DTOを使わないと、通信の回数が増加するだけでなく、ロジックが非効率的になるからだ。
2)通信を通じて値がサーバーに伝達されるとしよう。
送信された値をサーバで使用する値に変えるために、我々は直列化(serialization)を経なければならない。
ところが、原始値の場合、直列化ロジックを内部に持ちにくいので、
通信を担当するコントローラレイヤーで直列化に対するコードを持たなければならない。
このコードはコントローラごとに必要なので管理することも難しく、
また、修正しようとする時、正確にどこを修正しなければならないのか知ることも難しい。
しかし、オブジェクトに整理されたDTOの場合、直列化ロジックを内部にカプセル化して持っていることができる。
この場合、責任も明確でコードを修正することも楽だろう。
3)EntityではなくDTOを伝達することで、各レイヤー間の役割を分離することができるため