ddd-repositories

    4熱度

    2回答

    假設我有一些DDD服務需要一些IEnumerable<Foo>來執行一些計算。我想出了兩種設計: 摘要與IFooRepository接口的數據訪問,這是相當典型的 public class FooService { private readonly IFooRepository _fooRepository; public FooService(IFooRepository

    1熱度

    3回答

    我知道這是一個常見問題,但我還沒有找到另一個解決我的疑惑。 通常,如果項目很小,我會在表示域對象的同一個對象中使用持久性註釋。這允許從數據庫加載實體並使所有設置器保持私密,確保任何實例始終處於有效狀態。就像: @Entity class SomeEntity { @Id @GeneratedValue(strategy = GenerationType.AUTO)

    0熱度

    2回答

    我有一個應用程序服務(AppService)和一個從外部數據提供者讀取數據的基礎設施庫(InfraRepo)。 AppService調用InfraRepo並將數據返回給客戶端。 我有以下要求:我有一些過濾條件和業務邏輯。爲此我創建了一個域服務(DomainService)並將其注入到InfraRepo中。一旦我從外部數據提供者(在InfraRepo中)中檢索數據,我就會調用域服務,將數據傳遞給那裏

    0熱度

    1回答

    我在DDD有界上下文中使用多個聚合根。 例如 public class OrderAggregate { public int ID {get;set;} public string Order_Name {get;set;} public int Created_By_UserID {get;set;} } public class UserAggregat

    8熱度

    4回答

    我已閱讀並感悟到自己,實體(數據對象 - 對於JPA或序列號)在他們注射是一個壞主意。這是我目前的設計(所有適當的領域都有getter和setter方法,以及serialVersionUID我跌幅爲簡潔)。 這是父對象,它是實體組成圖的頭。這是我序列化的對象。 public class State implements Serializable { List<AbstractCar>

    1熱度

    2回答

    如果我們考慮一個標準的持久性存儲庫,解決方案很簡單。我們將IStuffRepository放入域層,並將StuffRepositoryImplementation放入基礎設施層。 但是,當我們想要包裝第三方API時,什麼是好模式? 我們可以應用相同的模式,在域層中有一個IStuffGateway,在基礎設施層中有一個StuffGatewayImplementation。 但是這種方法存在問題。當我

    2熱度

    4回答

    當前的項目需要我們在NoSQL數據庫(如mongoDB)中持久存在域對象。 在很多例子中(包括Eric Evans,Vaughn Vernon),域對象都被序列化並直接保存到mongoDB中。 我們希望通過在域對象中沒有任何註釋來避免混合域層和持久性相關的信息。 此外,我們擔心未來通過更改域對象來破壞持久數據。 我們得出結論,我們需要在域對象和持久數據之間轉換某種DTO。 有沒有人遇到過這種情況的

    1熱度

    2回答

    我所有的實體都是接口的實現。他們的大多數屬性都是隻讀的。 我的存儲庫保存了一個對庫項目的引用,我擁有所有的接口,所以從技術上講,存儲庫可以保存聚合根不知道它是事實上的實現(我認爲是+1) 。 這裏的問題是:如果大多數屬性是隻讀的,那麼如何在不破壞OOP原則的情況下重新集合一個聚合根?存儲庫是否需要引用域項目並意識到接口的具體實現?

    2熱度

    1回答

    有一些屬性對域沒有意義,但對於存儲庫來說是必不可少的,其中一個例子是分區鍵。 在我的存儲庫上有一個DTO可以擴展實體的基本實現,添加相關字段嗎?

    1熱度

    1回答

    我剛開始學習DDD。所以我很抱歉的問題... 所以我有Post實體。它看起來很好。但它應該有tags。 在代碼中,它看起來是這樣的(Ruby代碼): class Post attr_reader :tags attr_reader :title attr_reader :text # ... end class Tag attr_reader