EntityとDto
- Dtoについてこれまで誤解していたことと、本来の使われ方について書く
EntityとDtoの違い
TL;DR:
長い解説
- "Data Transfer Object(DTO)" がとても不明瞭に定義されているのに対して、"Entity" は様々な文脈で異なる解釈をされている
- "Entity"という用語にもっとも関連のある解釈は、私の意見としては以下の3つになる:
JEEやJPAコミュニティはエンティティをもっぱらデータベースのテーブルにマッピングするものとして見ている。この見方はDTOの定義に非常に近い。そしてこれがこの混乱の元になっているのかもしれない。ドメイン駆動開発の文脈においては(というのはRobert Martinの見方だが)、エンティティはビジネスドメインの一部でそれゆえに振る舞いを実装すべきなのだということだ。
Data Transfer Objectの本来の意味
*1:getterやsetterのこと