アプリ版:「スタンプのみでお礼する」機能のリリースについて

dtoとentityは
DBと同じ名前と形式を持っているはずですね。

でも名前も違うし。。差異は何ですか。。。

A 回答 (2件)

Entityを、Entity Beanとか、DBのテーブルとか、と解釈します。


DTOをData Transfer Objectのデザインパターンと解釈します。

自分なりの解釈ですが。。。
Entityは、データレコードを表現するクラスのことで、DTOは、EntityBeanとかのデータをAPの都合の良い形でモジュール間でやりとりするためのクラス設計方法の一つと思います。

例えば、複数のデータソースからデータを取得してそれらを最終的なUI上に表現したいとした場合、画面構築の際にデータソースそれぞれに都度取得要求しつつ画面構築するよりかは、一度DTOにまとめてから画面構築したほうが設計上も綺麗ですしソースもシンプルになると思います。

パフォーマンスの面で言えば、例えば、データソースを扱う複数のサーバ(DBとか)とAPサーバとフロントエンドのAP(UI)が動作するクライアントPCといった構成で、クライアントからAPサーバを介してデータソースにデータ要求をしたいとした場合、データソース別に都度ネットワーク越しにデータの要求とレスポンスを繰り返すよりかは、APサーバでDTOにまとめてから、一括でやりとりしたほうがパフォーマンス的には良いと思います。もちろん呼び出す側でもそれを意識した呼び出しが必要だと思いますけど。

「DBと同じ名前と形式を持っているはず」というのがそもそも認識誤りなのじゃないかなと思ってるんですけど、どうでしょ。
    • good
    • 4

Data Transfer Object と Entity の語源から考えると


違うような違わないような、よくわからない(無知)んですが、
私は
Entity:データベースのレコードをそのまんま格納する。
DTO:入力フォームなどのデータなど、アプリ内でやりとりするデータを格納する。DBに保存されるとは限らない。
と認識しています。

DTOをそのままEntityとして使う場合も多いので、混同されているのでしょう。
    • good
    • 2

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A