RMo*_*sey 5 java oop design-patterns list map
编辑:我已经得到了几个答案,说出了我在问题中已经说过的话。我真正感兴趣的是找到确凿的参考资料。
我正在看一个或多或少遵循此模式的代码示例:
Map<String, List> getListsFromTheDB() {
Map<String, List> lists = new HashMap<String, List>();
//each list contains a different type of object
lists.put("xList", queryForListOfXItems());
lists.put("yList", queryForListOfYItems());
return lists;
}
void updateLists() {
Map<String, List> lists = getListsFromTheDB();
doSomethingWith(lists.get("xList"));
doSomethingWith(lists.get("yList"));
}
Run Code Online (Sandbox Code Playgroud)
我的感觉是,这是一种反模式。编码人员应该做的是创建一个可以返回的类,如下所示:
class Result {
private final List<X> xList;
private final List<Y> yList;
public Result(xList, yList) {
this.xList = xList;
this.yList = yList;
}
public List<X> getXList() { xList; }
public List<Y> getYList() { return yList; }
}
Run Code Online (Sandbox Code Playgroud)
这将是类型安全的,避免过度概括一个非常具体的问题,并且在运行时不易出错。
谁能指出我任何权威的参考材料,这些材料指定您应避免这种模式?或者,或者,如果这实际上是一个好的模式,请给出理由。
我没有任何权威材料,但我的直觉是,除非实际代码中发生了更复杂的事情,否则使用这种方式Map不会困扰我。实际上,这Result门课感觉有点矫枉过正。
| 归档时间: |
|
| 查看次数: |
1292 次 |
| 最近记录: |