集計ルートの設計にはいくつかの問題があります。ここでは、私が店になりますさて、この私の集約ルートに基づいて、私の心:)正しく集計ルートを集計する
Store (the aggregate root)
-> Sales - A store create a sale every day
-> Zones - A store is divided into zones
-> Styles - A zone has x number of styles
--> Colors - A style has x number of colors
etc..
でそれを見る方法です。しかし、もし私が今、リポジトリを作成しようとしていたら、それはこのように見えますか?
これは良い方法ですか? 私はDDDが初めてであることは言うまでもありません。
はい、StoreIdを渡すだけで、直接販売にもアクセスしたいと思います。私はその場合にSaleRepositoryを作成すると思いますか?ゾーンは店舗ごとに異なります。各店舗は、x個のゾーンを別々に持つことができます。ここでもZoneRepositoryを作成できますか?私はエバンスの本を注文しましたが、すでに私のドメインを調べ始めるでしょう。他の情報が必要な場合はお知らせください。私がより多くの知識を得ることができれば、私はDDDを理解するでしょう。再度、感謝します。 – vikasde
DDDでは、おそらく集約境界が最も難しいと思われます。ストアIDを提案された販売リポジトリに渡す必要がある場合は、2つの可能性があります。最初に、Salesがあなたが言及したStore集約の一部になることがあります。もう1つは、StoreがSales集約の一部である可能性があるということです。彼らが実際に両方とも集約する唯一の方法は、独立してアクセスする必要がある場合と、互いに直接の知識を必要としない場合があります。 .... –
...別の集約ルートへの参照を保持しています。たとえば、StoreとSalesの両方が集約ルートであると判断した場合、Saleがストア識別子への参照を持つことを妨げるものは何もありません。ゾーンに関しては、ストアと明確な関係があります。これはStore *が集約ルートであり、Zoneがエンティティである(これらは記述したコンテキストでは必ずしも不変ではないため)ことを強くします。だから今はStoreが集計であり、ゾーンが含まれていると確信しています。 –