public IRedirect FactoryStrategyRedirect()
{
if (_PasswordExpired) {
return _UpdatePasswordRedirectorFactory.Create();
} else {
return _DefaultRedirectorFactory.Create();
}
}
この戦略ファクトリ メソッドは、型バインディングと when 句に置き換えることができます。
Bind<IRedirect>.To<UpdatePasswordRedirector>.When(c=> c.kernel.get<SomeContext>().PasswordExpired())
Bind<IRedirect>.To<DefaultRedirector>.When(c=> not c.kernel.get<SomeContext>().PasswordExpired())
2つのアプローチのどちらがより正しいのだろうか。長所と短所は何ですか。
特に、ロジックがより複雑で、テストする変数が多く、より具体的なクラスが返される場合。
バインディングにビジネスロジックを実装するのは正しいですか?