这样的请求就是命令。
在简单的 OOP 中,我经常将此类消息建模为带有 out 参数的 void 方法。
例如,在财务模型中,我有一个咨询合同(实体和聚合根)执行规则来构建财务建议(实体,不可变)。最终推荐的发布是用这样的命令建模的:
public interface IAdvisoryContract
{
ContractNumber Number { get; }
// lot of well documented commands and queries here...
/// 90 lines of documentation here...
void PublishRecommendation(
IUser advisor, IAssetClassBreakdownAnalysis assetClassAnalysis,
IVolatilityAnalysis tevAnalysis, Time time,
out IRecommendation newRecommendation);
event EventHandler<EventArgs<RecommendationNumber>> RecommendationPublished;
}
在 CQRS 中,这取决于您的基础架构:例如,在类似的 HTTP 情况下,我使用 POST 将相关信息返回给客户端。