2012-12-20 39 views
3

如果我的域模型中的邏輯取決於第三方組件或某個內部自定義庫/管理器.dll,創建此依賴關係是否可接受?我顯然沒有依賴/依賴任何外觀或持久層到我的領域層,但我很好奇,如果其他類型的依賴關係打破任何規則的DDD?在域模型中擁有第三方或自定義「庫」引用?

回答

4

總的來說,我同意this answer,這是如果第三方庫

  • 變化往往
  • 做任何形式的進程外通信
  • 更是如此有很多的依賴性它自己的

但是我認爲一些第三方庫可以直接從你的域代碼引用(否則你將無法使用內置的java/c#類型)因爲他們也可以被視爲第三方)。這些是沒有任何上述特徵的庫,例如noda-time。我也可以看到一些數學或集合庫可以直接引用,取決於你的域名。

4

在DDD中,這種類型的方案使用anti-corruption layer進行處理。這基本上是需要將第三方API封裝在存儲庫或域服務之後。您可以創建第三方API的本地模型,然後可以與其他域的層集成。

相關問題