我有以下接口:
public interface ResultEvaluationInterface {
public void evaluateResults(Event e);
}
我希望能够根据Event.type
注入不同的类,但这些类具有相同的实现。例如:
@Stateless
@LocalBean
public class ResultEvaluation implements ResultEvaluationInterface {
@Override
public void evaluateResults(Event e) {
switch (e.getType()) {
case Type.Running:
// inject and call ResultEvaluationRunningEJB.evaluateResults(e)
case Type.Swimming:
// inject and call ResultEvaluationSwimmingEJB.evaluateResults(e)
default:
throw new UnsupportedOperationException("Not supported yet.");
}
}
}
ResultEvaluationRunningEJB
和ResultEvaluationSwimmingEJB
都实现了该接口。有没有好的方法来优雅地解决这个问题?