具有常见操作的CQRS命令 - 重复代码

时间:2017-01-05 08:30:14

标签: cqrs

让我们假设我们有几个命令共享通用逻辑。例如,我有 Document ,它有几个状态。我们在某些状态下可能会发生变异操作,但某些逻辑因其状态而异。使用Command语句为超过3个州制作一个If令人困惑。它更好地为每个操作制作单独的命令,但是如何处理常见逻辑?

我们必须从数据库中获取数据,验证,生成一些辅助文档,写入审计表和其他内容。所以它看起来应该是常见的地方并且使无意义的Helper类是最糟糕的选择。我认为此操作可以/不需要交易。

我已阅读http://scrapbook.qujck.com/holistic-abstractions-take-2/CQRS code duplication in commands。我正在寻找其他选择。

1 个答案:

答案 0 :(得分:2)

@ Redgood,如果我没弄错的话,你描述的一些东西属于域名。

确保您的商家/域名"逻辑"不会溢出域外。我确实使用ICommand接口来标记我的命令,我确实有一些逻辑,但仅用于数据类型验证或其他类型的完整性检查。

坚持下去。从Command的角度来看,您所关心的只是命令中包含的数据是Good。就是这样。因此,请确保Command中的所有方法都只是为了强制执行完整性。