aggregateroot

    0熱度

    1回答

    我想申請/練習DDD與我的新項目,因此我創建了那些典型的DDD基類,即Entity,ValueObject,AggregateRoot等等。 問: 當你有實體基本對象實施IEquatable,應與標識(ID)的默認值,兩個實體被視爲不等於或等於? 例如,我用Guid類型的身份 public interface IEntity { Guid LocalId { get; } } p

    1熱度

    1回答

    假設我們有Foo作爲一個AggregateRoot。並且有一些通用的Foo s以及EnhancedFoo s帶有許多擴展屬性。是否可以在單個聚合根類上公開「操作」以獲得通用屬性和增強屬性,並通過驗證檢查來引發異常,如果在非增強對象上調用增強動作Foo對象?從技術上講,在這種情況下,AggregateRoot將爲所有支持的Foo類型聚合所有可能的「操作」? 顯然很大程度上取決於領域結構,但我認爲這種

    1熱度

    1回答

    在Red Book Vernon模型中將BacklogItem和Sprint實體作爲單獨集合。我看到了這種方法的優點,但有一種情況是我無法擺脫困境。例如,我需要我的Sprint聚合來執行最大項目分配限制。此外,BacklogItem必須意識到assigment的事實,以確保它不被分配給多個Sprint。因此,將BacklogItem分配給Sprint會在一個事務中更改兩個聚合,這不是我們想要做的事

    1熱度

    3回答

    我正在實踐領域驅動設計,那麼爲什麼不建立一個演示產品目錄項目?顯然Product在這裏是核心領域,但因爲我喜歡讓項目更有趣,我很樂意支持嵌套Category層次結構。換句話說,Category可能有許多孩子Category。 此外,我想分開Category域從Product域,並使其自己的支持域。 問題:標記Category as AggregateRoot聽起來不正確。 A Category可能

    0熱度

    2回答

    我讀過this interesting topic爲了研究DDD,並發現了一個新的想法,作者說「沒有在產品類別內製作'ProductReviews'集合的論點。因爲「有這兩個實體之間沒有真正不變」 裏面有Product類沒有ICollection<ProductReview>。然後,問題是 它是否與DDD兼容? 這樣做的優點和缺點是什麼?

    1熱度

    1回答

    聚合根的成員實體指向根實體(不是相反方向)可以嗎? 假設我有人口AR(其中人口是根實體,人口會員是成員實體之一)。 我正在評估人口與人口會員之間的關聯方向。在另一端還有另一個實體,人(自己的AR,人口會員有人蔘照)。 在ER(數據庫)世界中,我們通常會從人口會員朝向人口(人口成員是人口與人之間的多對多關係中的關聯表)進行關聯。 但是我認爲在DDD世界中,我應該打破這種習慣,並且使聯想從人口(在概念

    0熱度

    1回答

    我知道在DDD中刪除一個聚集根將意味着一次刪除聚集邊界內的所有東西。 但我注意到,讀模型(只讀屬性)集合文件中被用作列夫Gorodinski在這個博客中指出:http://gorodinski.com/blog/2012/04/25/read-models-as-a-tactical-pattern-in-domain-driven-design-ddd/ 但那些車型是aggregate.So,我

    1熱度

    1回答

    我知道在DDD中刪除聚合根必須一次刪除聚合邊界內的所有東西。 但是在vaughn vernon在此處給出的敏捷示例https://vaughnvernon.co/?p=838 BackLogItem和Product Aggregates存在於單獨的聚合中,而BackLogItem聚合根通過Id引用Product Aggregate Root.So,如果要刪除Product Aggregate Ro

    1熱度

    2回答

    根據DDD原則,所有使用與特定聚合根對象有關的實體的CRUD操作應由聚合根進行。 但是,我們如何只從一個實體的aggr根改變一個屬性?我們是否應該在實體中使用setter方法,以及這些方法應具有哪些訪問器? 或者可能所有的實體都應該有自己的引用來指向它們的聚合根? 或者我們從不改變只有一個屬性,而是用全新的實體替換當前實體狀態的實體?

    0熱度

    2回答

    當我需要調用某種業務方法時,即使操作與下面給出的操作一樣原始(僅將項添加到集合中),我也需要獲取與該操作相關的所有聚合根。我錯過了什麼?或者是基於CRUD的方法,其中運行單個查詢,包括表連接,最終選擇和插入 - 數據庫引擎爲您完成所有工作 - 在性能方面實際上更好? 在下面的代碼中,我需要查詢單獨的聚合根(它創建另一個數據庫連接併發送另一個select查詢)。在真實世界的應用程序中,我一直在查詢大