【読書メモ】実践ドメイン駆動設計 ~第5章~ 「エンティティ」
前回 【読書メモ】実践ドメイン駆動設計 ~第4章~ 「アーキテクチャ」
DDDにおいて「エンティティ」は一意なものを示す概念。長期に渡り、変化する可能性がある。 DBのプロパティをpublicなプロパティーとして保持し、そのgetter/setterのみから構成されるモデル。
オブジェクトとしての「振る舞い」がほとんどない状態で、「単なる手続き型設計」になっている点が、アンチパターンとされる。 早期生成: エンティティを永続化する前に、生成と割り当てを行う。 遅延生成: エンティティを永続化する時に、生成と割り当てを行う。 エンティティが保持する識別子とは別に、オブジェクトの識別子を別の方式で管理したい時に利用。例えば、ORMツールのHibernateは、データベースに依存した型で識別子を持つ必要がある。 レイヤスーパータイプを利用することで解決する。 ※自己カプセル化・・・ クラス内部からフィールドにアクセスする際もアクセサメソッドを利用する方法。 「実践ドメイン駆動設計」から学ぶDDDの実装入門 (WINGSプロジェクト 青木淳夫 著) 以上What is 「エンティティ」
一意ではなく、変化しないものは「値オブジェクト」と呼ばれる。ドメインモデル貧血症
エンティティ設計
一意な識別子
生成タイミング
代理識別子
エンティティの生成方法
バリデーション
参考