2010-12-02 129 views
0

我有一个程序需要从多个源读取数据。我有几个对象,每个对象都包含学生列表和他们的测试分数。然后我有另一个课程,必须从每个对象中提取所有信息。使用接口和依赖注入

问题是我必须通过一个接口来操作。即

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个物体怎么办?

感谢所有帮助

+0

这不是问题的答案,而是让ScoresInterface返回一个HashMap将您与实现绑定并限制您。相反,如果您需要知道密钥,ScoresInterface会使用您需要的任何键和值类型来实现“getScore(key)”,并可能会使用“Collection getKeys()”。至少让ScoresInterface返回Map而不是HashMap。 – DJClayworth 2010-12-02 21:26:18

回答

0

我想传递一个List<ScoresInterface>

这样你可以使用Total类遍历并计算总数。

List实现的类型(ArrayList,LinkedList等..)是由你决定的。