php - 在使用 CQRS 的情况下从另一个命令调用一个命令
问题描述
我正在使用 CQRS 开发应用程序。我有一些我有点困惑的情况。
我有一个命令 CreateUser。现在我必须创建命令 ImportUsers。我想这些命令的目的很明确。所以有两种选择:
- 从 ImportUsers 命令调用 CreateUser 命令。
- 在 ImportUsers 命令中进行某种复制/粘贴以从头开始执行所有操作。
什么是最佳做法?先感谢您。
解决方案
您将逻辑放在错误的位置,这就是导致问题的原因。命令旨在成为域逻辑的协调器。换句话说,他们在域中调用适当的方法来完成他们的工作,而不是他们自己去做。
创建单个用户的逻辑属于每个方法调用的工厂。工厂应该有一个 CreateUser 方法,该方法接受所有数据作为参数,或者如果有超过 5 个左右的参数(我假设有),则接受 DTO。使用工厂创建用户,这两个命令的唯一区别是 ImportUsers 将循环调用工厂的 CreateUser 方法。
检查这个帖子关于命令背后的想法。如果您使用的是 DDD,请阅读Udi Dahan 的帖子,了解所有对象创建应该如何在某个聚合某个地方的方法中。
推荐阅读
- python - SciPy 拟合给出错误
- python - Pandas for 循环将列复制到单独的数据框,相应地重命名 df
- excel - 使用office.js设置值时如何阻止excel自动格式化
- jquery - 如何使用 Ajax 显示从服务器获取的 JSON 格式的多条记录?
- http - 如果我明确“关联”,为什么我的界面不包含值
- python - 如何以编程方式将 vlc 播放器设置为 Windows 中的默认播放器?
- react-native - 如何在 Windows 上构建 React Native 应用程序
- git - 如何从目录中的所有存储库中递归删除损坏的 git 远程?
- python - 如何将字节列表转换为有符号短列表
- javascript - 继承 CSS fullCalendar