私は DDD の初心者で、次のシナリオでは C# でエレガントにモデル化しようとしています。
基本的に name プロパティと、特定の順序で実行する必要がある項目のリストのみを持つテンプレート。
public class Template { public string Name { get; set; } public List<Item> Items { get; set; } } public class Item { public string Name { get; set; } public int Order { get; set; } }
プロファイルと呼ばれるタイプ。
public class Profile { public string Name { get; set; } }
プロファイルクラスは、
- テンプレート A を使用して、所有しているアイテムとその順序を把握しています
- テンプレート A が変更された場合、リスト テンプレート A の複製を保持したくないため、新しいバージョンを使用します。
- 私が削除されても、テンプレートはまったく影響を受けません
- 私が作成された場合、テンプレートが必要です
- 私は私の名前だけで世話をすることができます
これは、集約ルートがテンプレートであり、アイテムのリストとプロファイルのリストがあるように見えます。しかし、プロファイルの名前で検索すると、指定された名前のプロファイルを持つすべてのテンプレートを検索する必要があるように感じます。どういうわけか、CRUD のバックグラウンドから来て、それは高い代償を払うように思えます。また、プロファイルはテンプレートを使用するプロファイルであり、それを使用するプロファイルをテンプレートに認識させることは間違っているようです。
これをどのようにモデル化しますか?ここでの集約ルートは何ですか? 複数ですか?UI から使用する場合、どのように検索を実行しますか?