如果我的域模型中的邏輯取決於第三方組件或某個內部自定義庫/管理器.dll,創建此依賴關係是否可接受?我顯然沒有依賴/依賴任何外觀或持久層到我的領域層,但我很好奇,如果其他類型的依賴關係打破任何規則的DDD?在域模型中擁有第三方或自定義「庫」引用?
3
A
回答
4
總的來說,我同意this answer,這是如果第三方庫
- 變化往往
- 做任何形式的進程外通信
- 更是如此有很多的依賴性它自己的
但是我認爲一些第三方庫可以直接從你的域代碼引用(否則你將無法使用內置的java/c#類型)因爲他們也可以被視爲第三方)。這些是沒有任何上述特徵的庫,例如noda-time。我也可以看到一些數學或集合庫可以直接引用,取決於你的域名。
4
在DDD中,這種類型的方案使用anti-corruption layer進行處理。這基本上是需要將第三方API封裝在存儲庫或域服務之後。您可以創建第三方API的本地模型,然後可以與其他域的層集成。
相關問題
- 1. Android橫向自定義庫 - 第三方庫或本機?
- 2. iOS - 在我的自定義框架中使用第三方庫
- 3. 如何在JavaScript中模擬「類」? (有或沒有第三方庫)
- 4. 在模型中引用自定義方法的模板變量
- 5. 如何在自定義類或庫中實現第三方緩存
- 6. 設計圍繞一個第三方庫我的域模型
- 7. Qt未定義引用第三方軟件庫
- 8. 在GWT中使用第三方JavaScript庫(帶有窗口引用)
- 9. 自定義用戶跟蹤或頁面引薦分析的第三方服務
- 10. 使用第三方JavaScript庫自定義AngularJS動畫
- 11. 使用模型綁定對第三方庫進行驗證
- 12. 第三方庫衝突的定義/ redefinitons
- 13. 第三方自定義組件
- 14. Guice:如何自定義第三方模塊的綁定?
- 15. 在GAE項目中引入和引用第三方庫
- 16. 引用和導入第三方python庫
- 17. Angular - 在另一個第三方庫中引用的庫
- 18. 保存第三方庫自定義對象到NSUSerDefault
- 19. 第三方工具的自定義Javascript模板
- 20. 編寫自定義的第三方客戶端模擬器
- 21. 如何在android中使用第三方庫而不使用第三方庫
- 22. 在兩個第三方庫中uint32的Typedef重新定義(C2371)
- 23. 將第三方js庫嵌入到自定義控件庫中。是否?
- 24. 在自定義實現第三方API資源的Rails應用
- 25. 在第三方使用自定義變量jQuery插件
- 26. 如何在django中自定義第三方軟件包
- 27. 在自定義ios框架中導入第三方框架
- 28. 來自第三方註冊服務商的Azure自定義域名
- 29. 如何讓我的用戶擁有自定義域名?
- 30. 使用第三方exe打包自定義DLL的方法