使用接口和依赖注入
问题描述:
我有一个程序需要从多个源读取数据。我有几个对象,每个对象都包含学生列表和他们的测试分数。然后我有另一个课程,必须从每个对象中提取所有信息。使用接口和依赖注入
问题是我必须通过一个接口来操作。即
public class Total{
HashMap<String, Integer> results;
ScoresInterface si;
...
void addScores(){
results.putAll(si.getScores());
}
}
public interface ScoresInterface{
public HashMap getScores();
}
public class Scores implements ScoresInterface{
HashMap<String, Integer> results;
...
public HashMap getScores(){
return results;
}
}
我希望这段代码有意义。 Total类基本上需要访问许多Scores对象并收集所有信息。
我的问题基本上是,我怎么让Total类知道分数类的所有对象?我曾想过在Total中添加一个名为setSource(ScoresInterface a)的函数,并将每个新的Scores对象传入。但是,它看起来有点冗长。如果有100个物体怎么办?
感谢所有帮助
答
我想传递一个List<ScoresInterface>
。
这样你可以使用Total类遍历并计算总数。
List实现的类型(ArrayList,LinkedList等..)是由你决定的。
这不是问题的答案,而是让ScoresInterface返回一个HashMap将您与实现绑定并限制您。相反,如果您需要知道密钥,ScoresInterface会使用您需要的任何键和值类型来实现“getScore(key)”,并可能会使用“Collection getKeys()”。至少让ScoresInterface返回Map而不是HashMap。 – DJClayworth 2010-12-02 21:26:18