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())
我想知道这两种方法中哪一种更正确。优缺点都有什么。
尤其是在逻辑更复杂,需要测试更多变量和返回更多具体类的情况下。
在绑定中实现业务逻辑是否正确?