嗨,我使用了简单的注射器 DI库,并已下面讲围绕命令模式设计的建筑模型一些真正有趣的材料:
- 同时......在我的体系结构的命令侧
- 同时......在我的体系结构的查询侧
容器将管理的生命周期UnitOfWork
,和我使用命令来执行特定功能的数据库。
我的问题是,如果我有一个命令,例如AddNewCustomerCommand
,这反过来执行另一呼叫到另一个服务(即发送的文本消息),从设计的角度来看这是可接受的或应此在较高水平,并且如果这样做如何更好地做到这一点?
示例代码如下:
public class AddNewBusinessUnitHandler
: ICommandHandler<AddBusinessUnitCommand>
{
private IUnitOfWork uow;
private ICommandHandler<OtherServiceCommand> otherHandler;
AddNewBusinessUnitHandler(IUnitOfWork uow,
ICommandHandler<OtherServiceCommand> otherHandler)
{
this.uow = uow;
this.otherHandler = otherHandler;
}
public void Handle(AddBusinessUnitCommand command)
{
var businessUnit = new BusinessUnit()
{
Name = command.BusinessUnitName,
Address = command.BusinessUnitAddress
};
var otherCommand = new OtherServiceCommand()
{
welcomePostTo = command.BusinessUnitName
};
uow.BusinessUnitRepository.Add(businessUnit);
this.otherHandler.Handle(otherCommand);
}
}