我应该指挥什么对象?
What object i should have in command?
我写系统遵循六边形架构。
我在用例中拆分了异步命令和同步查询对象。
我的 src 文件夹看起来像:
-src
--Entity
---Task.php
--UseCase
---Command
----CreateTask
-----CreateTaskUseCase.php
-----CreateTaskCommand.php
我的问题是:我 can/should 在 UseCase\Command\CreateTask\CreateTaskCommand
的构造函数中使用什么通过命令发送数据
\Entity\Task
- 创建
UseCase\Command\CreateTask\Request\Task
将拥有所有需要的数据
- 仅string/int/float
这是显示问题的简单示例。
现在我正在使用域中的对象(Entiti\Task
等)
在实际情况下,我有 UseCase\Command\CreateProcess
需要
- Uuid
- 实例[id, 名称]
- 来源[node_id, node_name, leaf_id, leaf_name]
- 资源[id,name,type etc. normal types Person[name,lastname]]
遵循DDD,过程就是我的聚合。所有实体仅由于构造过程(节点、叶、资源、人)而存在。然后我不想要单独的方式来创建其他实体,因为这种方式符合我的业务逻辑。
由于这个问题,问题是:我应该选择什么?违反一些规则?
问题:
- 从域内部使用对象绑定命令,会将更高层更多地绑定到核心。核心的任何变化都会与所有层发生连锁反应
- 创建
Request\*
让我受益匪浅 类,但清晰的命令使用方式,以及更多工作 - unitTest 等
- 仅使用标准类型(整数、字符串等)会使 __counstruct 有 20 个参数。我不想要多级数组,因为不会清楚使用这个命令。
感谢您的帮助。
经过一些时间和经验 - 最好的选择是使用来自 PHP 的标准数据。最终,最好为该命令创建对象(第二个选项),但这会消耗时间来创建 类 和测试。
永远不要使用域中的东西 - 这在未来是一个巨大的缺点。
我写系统遵循六边形架构。
我在用例中拆分了异步命令和同步查询对象。
我的 src 文件夹看起来像:
-src
--Entity
---Task.php
--UseCase
---Command
----CreateTask
-----CreateTaskUseCase.php
-----CreateTaskCommand.php
我的问题是:我 can/should 在 UseCase\Command\CreateTask\CreateTaskCommand
\Entity\Task
- 创建
UseCase\Command\CreateTask\Request\Task
将拥有所有需要的数据 - 仅string/int/float
这是显示问题的简单示例。
现在我正在使用域中的对象(Entiti\Task
等)
在实际情况下,我有 UseCase\Command\CreateProcess
需要
- Uuid
- 实例[id, 名称]
- 来源[node_id, node_name, leaf_id, leaf_name]
- 资源[id,name,type etc. normal types Person[name,lastname]]
遵循DDD,过程就是我的聚合。所有实体仅由于构造过程(节点、叶、资源、人)而存在。然后我不想要单独的方式来创建其他实体,因为这种方式符合我的业务逻辑。
由于这个问题,问题是:我应该选择什么?违反一些规则?
问题:
- 从域内部使用对象绑定命令,会将更高层更多地绑定到核心。核心的任何变化都会与所有层发生连锁反应
- 创建
Request\*
让我受益匪浅 类,但清晰的命令使用方式,以及更多工作 - unitTest 等 - 仅使用标准类型(整数、字符串等)会使 __counstruct 有 20 个参数。我不想要多级数组,因为不会清楚使用这个命令。
感谢您的帮助。
经过一些时间和经验 - 最好的选择是使用来自 PHP 的标准数据。最终,最好为该命令创建对象(第二个选项),但这会消耗时间来创建 类 和测试。
永远不要使用域中的东西 - 这在未来是一个巨大的缺点。