-2
我面臨的一個設計問題,其中需求是這樣的,我保持了地圖的底層集合,說Map<String, List<String>>
的Java:返回一個不可修改的集合,但應該能夠更新
我需要能夠返回這個地圖的不可修改的實例,以便訪問API的人不會篡改底層的地圖。
Class InMemoryDB {
private Map<String,List<String>> typeSlabValuesMap;
public List<String> getSlabs(String typeValue){
if (typeSlabValuesMap.containsKey(typeValue) {
return Collections.unmodifiableList(typeSlabValuesMap.get(typeValue);
}
return Collections.emptyList();
}
}
現在我也應該能夠在需要的時候改變地圖,例如,
- 新型進來,我應該能夠添加的種類和平板值需要改變
- 板坯值我應該能夠更新這些值在地圖
現在假設我只能在不可修改的列表中公開getSlabs
,我應該如何設計上述地圖的更新部分?
*你有什麼試圖解決你的問題?* – Lino
顯示海報 – sForSujit
你需要返回一個不可修改的地圖或一個不可修改的列表? – Lino