【发布时间】:2016-03-12 01:30:15
【问题描述】:
我对 Guice 还很陌生,并且一直在尝试查看 Guice 是否可以解决我的问题。我有一个主要的 Driver 类,如下所示:
public class Driver{
execute(){
Manager m = injector.getInstance(Manager.class);
}
}
public class Manager{
private List<IExecutor> executors;
@Inject
public Manager(IExecutorWrapper executor){
this.executors = executor.getExecutors();
}
public List<IExecutor> getExecutors() {
return executors;
}
}
我的 IExecutorWrapper 类有多个实现,每个实现都有自己的 IExecutor 列表。运行时只选择 1, 选择哪种实现的逻辑取决于上下文。设计这个的最好方法是什么,这样我的 Driver 类 不需要改变吗?我的 GuiceModule 会是什么样子?
谢谢!
【问题讨论】:
-
选择“IExecutorWrapper”的逻辑是什么?
-
如果 ctx.contains("a") 然后选择 1 否则选择另一个。
-
你应该更具体。你的背景是什么?它从何而来?谁创建/更新它?
-
上下文更像是用户输入。它是由用户创建的,是您在运行时获得的,并且对于每个请求都不同