2010-10-18 29 views
0

這裏是什麼排他性弧是(綠色弧)的例子。它的意思是說飛機可以有螺旋槳或噴氣發動機 - 但不是兩者兼而有之。什麼是排他性弧稱爲UML

在巴克ER表示法,排除 約束在兩個或多個角色被示 爲「獨家弧」連接到 角色用小圓點或 圓。

順便說一句 - 你可以讓他們在DDD? (我假設你可以,如果他們是UML的一部分)。

編輯 - 我的DDD問題有點誤導,我把它放在一個後想,但@sfinnies的答案提出了另一個有效的問題,我會單獨詢問(經過一些研究)。

alt text

回答

1

不知道你的意思是 「支持DDD」?

DDD不提供建模語言本身:它是相結合的方法(如何進攻的問題)和建築(如何構建應用程序)。

你表達業務規則:飛機可以有噴氣發動機或螺旋槳發動機,但不能同時使用。

這是一個從域中的有效約束,想必這是有關您的應用程序,因此它需要在域邏輯被捕獲。所以從這個角度來看,是的,它得到了DDD的支持。

如何實現它將部分取決於您的語言選擇,但我會猜測Plane將是一個聚合根,因此需要負責確保滿足約束條件。 DDD所說的是,作爲一個域約束,它應該被捕獲到你的域邏輯中:而不是其他一些體系結構層。

hth

+0

謝謝sfinnie。我想知道DDD如何處理闡明這種約束 - 但這更多的是一個側面問題。我的主要iquestion是解決此問題:在數據建模,你可以有一個「排他性弧」(特別是在巴克ER表示法) - 我只是想知道,如果UML具有等效和它叫什麼。 – 2010-10-19 07:44:02

+0

啊 - 好的。是的,UML有一個等價的 - xor約束。繪製爲互斥類之間(或其中)之間的虛線。參見UML上層建築規範(http://www.omg.org/spec/UML/2.3/Superstructure/PDF/)第61頁上的圖7.34。 – sfinnie 2010-10-19 07:56:25

+0

謝謝sfinnie - 你的評論是什麼密封了'正確的答案':) – 2010-10-19 20:27:27