2011-10-29 6 views
1

Eric Evansは、エンティティを「その属性ではなく、連続性と同一性のスレッドによって基本的に定義されるオブジェクト」と定義します。連続性のスレッドは、アプリケーションを失うためにエンティティをデータベースに保存する必要があることを意味しますか?ドメイン駆動設計でエンティティを記述するときに連続性のスレッドが意味するもの

+0

インターネットの偉大なパワーは、パターンが近いと思っていた、私はDDDを読んでいる間も同じクエリを持っていた – Shailesh

答えて

1

一般に、エンティティはどこかに格納され、主にリポジトリを通じて取得されます。

しかし、エヴァンとは、エンティティがモデル化された世界でそのアイデンティティと連続性を持たなければならないことを意味します。エンティティがアプリケーションの外部から来て別の場所に移動し、データベースをスキップすることもできますが、エンティティは次回のエンティティの識別に使用できます。他のエンティティは、そのIDを保持してもそれを参照することができます。

0

ライフサイクル全体にわたって安定しているか変更されていない/存在するエンティティとは何ですか?そのアイデンティティ残りの属性は変更できます。人生が終わった後でも、適切な文脈情報(日付や期間など)を参考にして、その人生を参照することができます。これは、そのプロパティによって基本的に定義され、同一性がなく、参照されない値オブジェクトとは対照的です。一般的な値オブジェクトは、色(rgb値)、金額(amount + currency)、重量(amount + unit)、年齢(年、月、日で表されます)、<insert_the_ones_from_your_domain_here> ...その内部状態のいずれかをタップします。もはや同じものではない。

+0

ありがとう、しかしそれはデータベース内の永続エンティティを暗示していますか? – Christian

+1

連続性のスレッドAFAIKは、エンティティのライフサイクルに関係し、それが「動きを通る」という事実、すなわちそのライフサイクルを通して状態を変化させる。その状態が永続化する方法は、ポイント(データベース、メモリ、誰が気にするもの)のほかにあります。私はそれを永続性の概念と結びつけませんが、99%の時間を言うと、エンティティは永続化します。 –

関連する問題