我有一個小問題,我想不出來挽救我的生命。的Java吉斯商
基本上我需要隨時動態地使用吉斯,然後遍歷所有這些註冊類。
比方說,這是我的同班同學註冊策略,但這些策略可以隨時通過運行應用程序被添加。
// Strategy registration may happen anytime, this is just an example
strategyManager.register(ExampleStrategy1.class);
strategyManager.register(ExampleStrategy2.class);
StrategyImpl類
public class StrategyImpl implements Strategy {
@Override
public void register(Class<? extends StrategyDispatcher> strat) {
//Add this class into provider or create an instance for it and add it into guice but how?
}
@Override
public void dispatchStrategy() {
//Find all strategies and execute them
}
}
我已經使用提供可靠的,但不知道我怎麼會註冊類添加到供應方和檢索它們呢?
@Override
protected void configure() {
bind(Strategy.class).toProvider(StrategyProvider.class);
}
我的供應商類總是得到相同的實例
public class StrategyProvider implements Provider<StrategyDispatcher> {
public LogManager get() {
return new StrategyDispatcherImpl();
}
}
,我添加擴展StrategyDispatcherImpl類,所以我可以施展他們的策略是什麼?
我需要多結合添加到一個相同的實例,但它需要使用配置綁定方法進行動態並沒有這樣做,但隨後另一種方式能夠找到所有這些戰略和執行。
您可能想要嘗試的另一件事是hk2(http://hk2.java.net),它專門設計爲動態的,並允許隨時添加和刪除服務,而不僅僅是在初始化時刻 – jwells131313