この質問には少し背景があります....
DB IDとエンティティを持つ値オブジェクトを使用したDDDクラス設計のジレンマ
誰も私の質問に説得力のある答えをくれなかったので、私の質問を言い換えて、疑問の恩恵に答えた人々に伝えます. たぶん、私は自分の質問を正しく提示していませんでした。
この時点で、あなたは私の最初の質問を読んでいると思います。
したがって、ContactInfo は User に属しているため、ドメイン ID を持つ必要はありません。ユーザーなしでは「存在できません」。それは他のクラスとコレクション (データベースから来る) をラップするクラス (nhibernate コンポーネント) に他ならないので、新しいインスタンスに置き換えたい場合、不変にするのは悪夢です。n 個のパラメーターを持つコンストラクター全体を作成し、オブジェクト グラフ全体を再作成する必要があります。これは、住所コレクション内の 1 つの通りを更新したかったからです。私の目には、ばか。
では、ContactInfo とは一体何なのでしょうか。変更可能な ValueObject? DDD の第一人者である Evan は、「mutable valueobject」に関する Google アラートと、これら 2 つの用語が出現するたびに送信するエクソシストを手元に置いていると確信しています。
私はこれについて非常に混乱しています。私は「f ... it」のようなプログラマーになりたくないので、かなり行き詰まっていて、単に ContactInfo を可変にしたくないからです(しかし、この時点では選択の余地がありません)。したがって、DDD の概念について独自の解釈 (および実装) を行う前に、いくつか意見を述べたいと思います。
PS: これは失礼かもしれませんが、Evan の本からの回答をコピー アンド ペーストしないでください。抽象的な概念でもありません。Order と Orderline については誰もが知っています。構造体と参照型、Blog、Post、Comments についても知っています。これは、この問題について知っておく必要があるすべての特定のシナリオです...そのため、このシナリオに対する具体的な回答をいただければ幸いです。
ありがとう :)