2
我寫作系統遵循六邊形結構。我應該掌握什麼對象?
我在UseCase中分割了異步命令和同步查詢對象。
我src文件夾的樣子:
-src
--Entity
---Task.php
--UseCase
---Command
----CreateTask
-----CreateTaskUseCase.php
-----CreateTaskCommand.php
我的問題是:我可以/應該使用通過命令在構造函數發送的UseCase\Command\CreateTask\CreateTaskCommand
\Entity\Task
- 數據創建
UseCase\Command\CreateTask\Request\Task
那會擁有所有需要的數據 - only string/int/float
這是顯示問題的簡單示例。
現在,我使用的對象從域(Entiti\Task
等) 在現實情況下,我有UseCase\Command\CreateProcess
需要
- UUID
- 實例[ID,名稱]
- 來源[NODE_ID,節點名,leaf_id,leaf_name]
- 資源[ID,名稱,類型等正常類型人【名,姓氏]]
通過遵循DDD,Process是我的聚合。所有實體僅存在於構造過程(節點,葉子,資源,人員)。然後,我不想單獨的方式來創建其他實體,因爲這種方式符合我的業務邏輯。
由於這個問題,問題是:我應該選擇什麼?打破一些規則?
問題:
- 與對象綁定命令從內域,將結合更高層更向芯。在覈心的任何變化,都會鏈所有層
- 創建
Request\*
讓我很多類,但用命令的明確的方式,以及更多的工作作出反應 - 單元測試等 - 只使用標準型(INT,字符串等。 )將使__counstruct有20個參數。我不想要多級數組,因爲不會清楚使用這個命令。
感謝您的幫助。
Ddd主要是關於您的業務走過的旅程和結構。我懷疑他們談論的是一個用例/流程/任務結構,但更多的是關於一個人的事情。另請參閱valueetypes。捆綁參數 – Batavia
你是對的,將刪除DDD標籤:) – timiTao
回滾你的編輯,因爲你已經添加了相同的文字到你的問題和你的答案。 – kayess