集約ルートを1;2;3でマークしました。とても素敵に見えます-ほとんどブドウのようです。
私が嫌いなものは、赤い矢印でマークされたエンティティです。
それを想像してみましょう:
- AR#1は会社です
- AR#2はオフィスです
- AR#3は従業員です
- 赤い矢印でマークされたエンティティの名前は
Country
- 会社は、従業員を雇用する国のルールを設定します(雇用に関して
company.Countries.Contains(employee.Country)
は真実でなければなりません)
- 会社は、従業員を雇用する国のルールを設定します(雇用に関して
私はどういうわけか、ドメインのこの非常に重要でない部分を見て(おそらくこの例ではそのように聞こえないかもしれません)、Countryを集約ルートに昇格させることは避けたいと思います。
骨材の根に関する用語集は次のように述べています。
内部メンバーへの一時的な参照は、単一の操作内でのみ使用するために渡すことができます。
つまり、「EmployeeCountry」のようなものを導入し、会社の国への参照を削除し、従業員の国が雇用業務でどの会社の国とも一致するかどうかを確認することは合理的に聞こえますか?
他のアイデアはありますか?
どうすればブドウを本来のように見せることができますか?