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個物體怎麼辦?
感謝所有幫助
這不是問題的答案,而是讓ScoresInterface返回一個HashMap將您與實現綁定並限制您。相反,如果您需要知道密鑰,ScoresInterface會使用您需要的任何鍵和值類型來實現「getScore(key)」,並可能會使用「Collection getKeys()」。至少讓ScoresInterface返回Map而不是HashMap。 – DJClayworth 2010-12-02 21:26:18