こんにちは、Simple Injector 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);
}
}