gpt4 book ai didi

Java Map反模式?

转载 作者:搜寻专家 更新时间:2023-10-31 08:29:59 25 4
gpt4 key购买 nike

编辑:我得到了几个答案,这些答案说明了我在问题中已经说过的内容。我真正感兴趣的是找到确凿的引用资料。


我正在查看或多或少遵循此模式的代码示例:

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"));
}

我的感觉是这是一种反模式。编码人员应该做的是创建一个可以返回的类,如下所示:

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; }
}

这将更加类型安全,避免过度概括一个非常具体的问题,并且在运行时更不容易出错。

任何人都可以指出任何指定您应该避免这种模式的权威引用资料吗?或者,如果它实际上是一个好的模式,请给出理由。

最佳答案

我认为关键是列表的数量是固定的。由于您确保代码使用 2 个列表,因此 map 有点过度概括。

所以我认为“class Result”更好。

关于Java Map反模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3826891/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com