集計と集計ルートに苦労しています。ユーザー要求の約 60% で機能する自然な集約ルートがあります。つまり、これらのリクエストは当然集約ルートに適用されます。
集約内に、集約ルートのメンバーとしてのみ存在できる別のエンティティがあります。ただし、ユーザーには、この別のエンティティ オブジェクトについて通知されます。概念的には、ユーザーがこの非集約ルート オブジェクトを直接操作することが理にかなっている場合があります。
したがって、いくつかのオプションがあると思います。
- ユーザーが要求している操作に応じて、両方とも集約ルートにすることができます。
- すべての操作は、最上位の集約ルートを通過する必要があります。
最上位の集約ルートは、この他のエンティティのコレクションを保持することに注意してください。
例:
主な集計ルート: 車
2 番目のエンティティ: 座席 (タイプに応じて、車には 2 つまたは 4 つの座席があります)。私のドメインでは、座席は車の一部としてのみ存在できます。
ドメイン内のほとんどの操作は、自動車レベルです。したがって、これは集約ルートの良い候補になります。ただし、(ここで例を示すのに苦労しています)、SpillCoffee、ChangeFabric、Clean など、一部の操作はシート レベルになります。
Seat と Car の両方が集約ルートになることはできますか? それとも、常に Car から始める必要がありますか?
ありがとう