LoginSignup
1
0

More than 5 years have passed since last update.

ちょっとずつ読むドメイン駆動設計 第ニ部 モデル駆動設計の構成要素 第六章 ドメインオブジェクトのライフサイクル1(序章)

Posted at

ドメインオブジェクトのライフサイクル

オブジェクトはメモリ上に存在するだけとは限らない。
データベースに格納されたり、アーカイブされたりとメモリ上のオブジェクトより長く存在することが多い。

そういったオブジェクトのライフサイクルをどう管理するかが6章のテーマ。
課題は2つ

  • ライフサイクルを通じて整合性を維持すること
  • ライフサイクルを管理するのが複雑でも、モデルが侵食されないようにすること

(第二部第六章より)

解決策は3つのパターン

1. 集約

ライフサイクルのすべてのフェーズにおいて集約の単位で整合性を保つ。

2. ファクトリ

ライフサイクルの始まり。複雑なオブジェクトや集約を生成したり再構成したりする。

3. リポジトリ

ライフサイクルの中期と終わりに対応。永続化されたオブジェクトにアクセスする手段を提供。必要な巨大なインフラストラクチャをカプセル化。

まとめ

  • リポジトリとファクトリはドメインには由来しないが、ドメイン設計においては、意味のある役割を持っている。
  • リポジトリとファクトリは集約を対象としている。
  • 集約が区切るスコープによって不変条件が維持されなければならない範囲が示される。

明日は、集約の詳細を読みます。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0