これらの乱雑なデータモデルに触れると、設計の際も混乱し、どのデータモデルに対応するパッケージ名を取得すべきかわからないです。オンラインのさまざまな情報を参照しましたが、誰もがわかりやすく説明していませんでした。そのため、私は経験に基づいて整理しました。
POJO
【plain old java object】普通の Java オブジェクト、他のデータモデルの基礎として使用できますVO
【value object】:値オブジェクトは不変のオブジェクトで、一意の ID 識別子がありません。一連の値を表すために使用されます【つまり、2 つの値オブジェクトのプロパティが同じ場合、それらは等しいと見なされます】- 単純なビジネスロジック操作を含めることができます
- VO には通常、値に基づいて比較するために equals と hashCode メソッドがオーバーライドされます
PO / エンティティ
【Entity】:エンティティには一意の ID 識別子が必要です。つまり、2 つのエンティティのプロパティ値が同じでも、それらは等しくありません。PO はデータベーステーブルとマッピングされる Java オブジェクトです【したがって、PO とエンティティは同じ概念と見なすことができます】DTO
【data transfer object】:DTO は異なるレイヤー間でデータを転送するために使用されます- 任意のビジネスロジックを含みません
充血モデル
:充血モデル = PO + ビジネスロジック、ある PO にビジネスロジックが含まれている場合、それは充血モデルですBO
【Business object】:ビジネスオブジェクトにはビジネスロジックが含まれています- サービス層でのみ使用されます