2017-01-25 24 views
1

是否有一些經驗法則,在設計域模型時在哪個方向上進行關聯?在域模型中建立關聯的方向

例如,我們在股票中有產品。產品的庫存狀態是一個相當複雜的數據結構,包含產品多種變體的列舉,無論是在庫存中,缺貨還是可預訂。因此,我們製作與產品相關的庫存狀態的單獨對象。 現在的問題是,如果產品對象應該引用它的庫存狀態,或者庫存狀態參考特定產品

首先解感覺,這不是產品的知道它的股票狀態的真正關注。產品只是一種產品,也許我們應該在不同的環境中操縱它們,放養不是問題。另一方面,作爲一個根的股票狀態感覺很尷尬,因爲當考慮股票時,首先我們認爲關於股票中的產品。

如何決定,哪個實體充當協會根?

回答

0

你假設這兩個概念是緊密耦合的,這意味着,他們屬於同一個界上下文。這意味着兩種模式都相互依賴 - 這可能是你不想要的,因爲它會導致你不想要的複雜性。畢竟,你自己提到它:「這不是產品知道庫存狀態的真正關注點」。那麼爲什麼要添加一個關係呢?

你可以把它們當作兩個獨立的限界上下文 - 它們之間沒有直接的關係,除了哪個環節這兩個概念的產品ID。

0

適航性的東西,你應該簡單地忽視,因爲它是東西純粹是人爲的。如果有兩件事是相關的,他們彼此都知道。行動和反應。重力。愛。努力尋找只能朝着一個方向發揮作用的東西。勒索。間諜鏡子。

引入導航功能的確在實施階段只有意義。你嘗試去耦合事物以減少依賴關係,現在是好的。而你在這裏實際做的是將角色名稱附加到導航上。這又會使箭頭變得多餘。

TL; DR;只是不要在UML建模中使用箭頭。讓他們參加Powerpoint聯賽。

0

首先的解決方案感覺,它不是產品知道庫存狀態的真正擔憂。產品只是一種產品,也許我們應該在不同的環境中操縱它們,放養不是問題。另一方面,作爲一個根的股票地位感覺很尷尬,因爲當考慮股票時,首先我們考慮一個產品在股票中。

當我們考慮購物車時,我們會考慮購物車中的產品。然而大多數時候,模擬購物車項目的有用方法是參考產品。

我的猜測是,你需要更多地考慮Stock,特別是關於它的生命週期;這兩種不同想法的生命週期有多緊密?如果您遇到單一Product與兩個不同Stocks(過去一個,當前一個;此位置一個,另一個位置)關聯的情況,則將該關係存儲在產品中是不正確的。