第 6 章 ドメインオブジェクトのライフサイクル (P123) †
要約 †
- P123
- あらゆるオブジェクトはライフサイクルを持ちます.オブジェクトは生成され,様々な状態を経て,いつかは死にます.
- 一時的なオブジェクトはこれ以上複雑にする必要はありません.
- しかし,それ以外のオブジェクトはメモリ上でアクティブであるより長い寿命を持ち,他のオブジェクトと複雑な相互依存があります.それらのオブジェクトの管理は MODEL-DRIVEN DESIGN の達成をあっけなく頓挫させるので,それは挑戦となります.
- P124-1
- この挑戦は二つのカテゴリに分けられます.
- ライフサイクルを通じて完全性を維持すること.
- ライフサイクル管理の複雑さにモデルが侵略されないようにすること.
- P124-2〜3
- 本章では 3 つのパターンを通じてこれらの問題に対処します.
- AGGREGATES
- 明白な所有権と境界を定義し,オブジェクトが蜘蛛の巣のように絡み合ったカオスを回避します.
- FACTORIES
- ライフサイクルの開始にフォーカスして,複雑なオブジェクトや AGGREGATES を作成し,それらの内部構造をカプセル化します.
- REPOSITORIES
- ライフサイクルの途中から最後にアドレスし,永続オブジェクトを見つける手段を提供します.
- P124-4
- REPOSITORIES と FACTORIES 自身はドメインから得られるものではありませんが,それらにはドメイン設計で意味のある役割があります.それらはモデルオブジェクトにアクセスするハンドルを与えることで,MODEL-DRIVEN DESIGN を完全なものにします.
- P124-5
- AGGREGATES をモデル化し,FACTORIES と REPOSITORIES を加えることで,モデルオブジェクトを組織的に操作する能力や,ライフサイクルを通じて意味のある単位を得ます.
- AGGREGATES は,ライフサイクルで状態の不変性が維持されなくてはならない範囲を区別します.
- FACTORIES と REPOSITORIES は AGGREGATES を操作し,複雑なライフサイクルの遷移をカプセル化します.
担当者のつぶやき †
- 元々が要約だけに直訳気味.特に P124.
- 本来ドメインにないものをドメインモデルに加えるというのは原理主義ではなく現実主義ということか.悪くはないけど残念な感じ.
みんなの突っ込み †