我有一部分使用S#arp Architecture实施的CQRS模式,如下所示:
public class MyCommand
{
public CustomerId { get; set; }
// some other fields
}
public class MyCommandHandler<MyCommand> : ICommandHandler<MyCommand, CommandResult>
{
Handle(MyCommand command)
{
// some code for saving Customer entity
return CommandResult.Success;
}
}
我想知道为什么不只Command
包含数据和处理方法的类?这是一种可测试性的好处,您需要与命令属性分开测试命令处理逻辑吗?还是某些频繁的业务需求,您需要由不同的实现来处理一个命令ICommandHandler<MyCommand, CommandResult>
?