我在UML(紙上)中快速定義了我的領域模型,並且在我開始測試驅出功能時,重構將我引向了在我的域中不表示概念的小類,但這些類很好地封裝了所需的責任。在DDD中添加無處不在的語言?
例如,我從一臺擁有許多許可證的機器(機器---> *許可證)開始。我從增加或減少列表中的相應許可證對象(即,許可證具有許可證類型和該類型許可證數目的計數器)的方法Add(licenseType)和remove(licenseType)開始。
機器有其他關聯和行爲,所以我創建了一個LicenseTypeManager,我現在有了Machine ---> 1 LicenseTypeManager ---> * License。
我有Machine作爲聚合根,LicenseTypeManager作爲Value對象,License作爲Value對象。
現在,LicenseTypeManager是我在重構時創建的,並且根本沒有提及,並且不是應用程序的無處不在的語言的一部分。它可以存在嗎?
換句話說,使用UL進行建模並找到可能有助於更清楚地解釋域的其他術語很好嗎?
此外,我開始認爲LicenseTypeManager可能是一個域服務,但後來我開始擔心我可能正在創建一個貧血模型(雖然模型中仍然有很多邏輯)。所以我的下一個問題是它應該是一個域服務還是應該保持它的位置?
JD
(因此你通過引進「經理人」的尋求贖回)知識2截至目前。請告訴我爲什麼以及如何避免它被關閉? – 2011-12-30 20:42:12
目前它有2個接近的選票:第一個關於「off topic」,第二個關於「非建設性」。另外 - DDD在「灰色地帶」。它非常抽象,站在現實世界問題和軟件工程之間。對於不熟悉DDD創意的人來說,問題可能聽起來像是荒謬的胡言亂語。 – 2012-01-03 12:09:16