1
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つのアプローチのどちらがより正しいのだろうか。長所と短所は何ですか。

特に、ロジックがより複雑で、テストする変数が多く、より具体的なクラスが返される場合。

バインディングにビジネスロジックを実装するのは正しいですか?

4

1 に答える 1