DtoとEntityの詰め替え方法

当ページのリンクには広告が含まれています。

こんにちは!ログログです!
34歳で開発未経験から開発エンジニアになり、今ではフリーランスエンジニアとして働いています!

DtoとEntityって何やら似てるけど違うもので、更に詰め替えが必要なので面倒ですよね。

基本的な詰め替えはGetter/Setterを使って実装するのが一般的です。

ただし、色んなところに詰め替えのコードが書かれるのは保守性を下げるので、詰め替えのメソッドはDtoとEntityに実装するのがおススメです。

本記事では基本的なDtoとEntityの詰め替えの実装を解説していきます!

目次

DTOとEntityの違い

そもそもなぜDTOとEntityで分けられているのかと言うと、それは役割の違いからです。

DTO

DTOはデータの転送を目的としたオブジェクトです。通常、クライアントとサーバー間、あるいはサービス間のデータの受け渡しに使用されます。また、DTOはビジネスロジックを持たず、単にデータのコンテナとしての役割を果たします。

Entity

Entityはデータベース内のデータを表現するために使用されるオブジェクトです。Entityはビジネスロジックとデータ永続性を持ち、データベースの行またはテーブルに対応することが一般的です。Entityはアプリケーションの内部で使用され、データの永続性とビジネスルールの実行を担当します。

要するに

小難しいことを書きましたが、DTOはデータの転送が目的のデータが詰まった入れ物で、EntiyはDBとのアクセスに使用されるオブジェクトということです。

画面上に表示する時にEntityからDTOに変換するのは、こういった役割の違いからなのです。

実装方法

DTOとEntityが1対1であるケースでコード例を示しています。

変換するメソッドを各クラスが持つ形になっているのは、自身が変換に必要なデータを持っているためです。

データを持っているクラスが責務を負うというのがオブジェクト指向の基本的な考え方ですので、これを機会に覚えておいて下さい。

DTOをEntityに変換する

EntityをDTOに変換する

ポイント

toEntityとtoDtoのいずれにおいても、最初にnewされていることに注目して下さい。

変換する際は基本的に新しいオブジェクトを生成することになります。既存のオブジェクトを使いまわすと、思わぬ副作用が出る可能性があるので、よっぽどのことが無い限り、新規オブジェクトを生成するようにして下さい。

まとめ

  • DTO、Entityクラスでメソッドを実装するのが基本的な変換方法である。
  • データを持っているクラスがメソッドを実装するのがオブジェクト指向の基本。
  • 変換時は新規オブジェクトを生成するようにする。

最後までお読み頂き、ありがとうございました!
ご意見・ご要望がありましたら、遠慮なくコメント下さい!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

リーマンショックの影響で26歳の時にIT業界から離れ、紆余曲折を経て34歳でエンジニアに復帰しました。
復帰前は開発未経験でしたが、独学した知識と面接時のコミュニケーション力で見事開発エンジニアとして復帰しました!
今はフリーランスエンジニアとして仕事をしています。

■保有資格
・Java Gold SE 11

コメント

コメントする

CAPTCHA


目次