私は、ユーザーがTwitterと同様の方法でお互いをフォローできるアプリケーションに取り組んでいます。DDD:接続オブジェクトはエンティティオブジェクトまたはバリューオブジェクトですか?
DDDを読んだ後、私はユーザーがエンティティオブジェクトであることを理解しています。固有IDを使用してそれらを参照しています。
あるユーザーが別のユーザーのフォロー(接続を形成)すると、その関係は多対多の表に保管されます。そのフィールドには、FollowerID
,TargetID
およびStatus
が含まれます。フォロワー/ターゲットの組み合わせごとに2つのレコードしか存在できません(1つはアクティブ、もう1つはアクティブではありません)。そのため、オブジェクトの属性に基づいてオブジェクトを安全に識別できます。
私はConnectionオブジェクトがエンティティオブジェクトではなくバリューオブジェクトだとは思いますが、わかりません。この決定で私を助けてくれますか?
"接続しているデータが含まれていない場合、接続にはIDがありません" - 接続はFollowerIDとTargetIDの組み合わせで一意です。だから私がTaregtIDとFollowerIDを持っていれば、私はそれがユーザIDだと信じて、接続を特定することができます。だから、それはどのようにエンティティオブジェクトではありませんか? –
@HariSubramaniam、それを置く別の方法は[this site](http://lostechies.com/joeocampo/2007/04/23/a-discussion-on-domain-driven-design-value-objects/)です、 "値オブジェクトはエンティティなしではそれ自身では生きられません。"確かにどちらがどちらであるかを決めることは必ずしも容易ではありませんが、これについて考え、研究した後、私は価値のあるオブジェクトに大きく傾いています。 – Matt