我正在使用 Guice 来管理我的班级依赖性。我有一个 LogicHandler 类,它依赖于几个 Components 类。
public interface LogicHandler {
private Component component1;
private Component component2;
private Component component3;
}
public interface Component {
public String doWork();
}
我将有 3 个 LoigcHanlder 实例。使用哪个实例将在运行时决定。每个实例都有不同的组件实现,所有实现都是预定义的。
如果我使用的是 spring DI,xml 配置将如下所示:
<bean id="handler1" class="org.sample.handlers.DefaultHanlder">
<property name="component1" ref="componentImplementationA" />
<property name="component2" ref="componentImplementationB" />
<property name="component3" ref="componentImplementationC" />
</bean>
<bean id="handler2" class="org.sample.handlers.DefaultHanlder">
<property name="component1" ref="componentImplementationD" />
<property name="component2" ref="componentImplementationE" />
<property name="component3" ref="componentImplementationF" />
</bean>
<bean id="handler3" class="org.sample.handlers.DefaultHanlder">
<property name="component1" ref="componentImplementationG" />
<property name="component2" ref="componentImplementationH" />
<property name="component3" ref="componentImplementationI" />
</bean>
注意:所有处理程序都由 DefaultHanlder 实现。
使用哪个处理程序实例基于某些参数。