我有几个继承自 Strategy 类的类 StrategyAlpha、StrategyBeta、StrategyOmega。
我想根据依赖注入(inject)框架 guice 的输入属性选择合适的子策略。
在运行时连接依赖项是个坏主意吗? 如何使用 Guice 来做到这一点?
最佳答案
您想要绑定(bind)类似 StrategyProvider 的东西,它在给定输入的情况下返回适当的策略。
你总是可以创建一个提供者——比如:
@注入(inject) StrategyProvider(@Named("alpha") 策略 alpha, @Named("beta") 策略 beta...) { this.alpha = alpha; this.beta = 测试版; }
策略get(参数a,参数b){ 如果(a > 3 && b < 10){ 返回测试版; } 别的 { 返回阿尔法; } }
参数是什么,以及为什么很可能决定这是否有意义。
关于Java 指南 : Run time dependency re-wiring,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6079028/