Редактировать: Я получил пару ответов, которые говорят то, что я уже сказал в вопросе.Что меня действительно интересует, так это поиск подтверждающего справочного материала.
Я смотрю на пример кода, который более или менее следует этому шаблону:
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; }
}
Это было бы более безопасно для типов, позволяло бы избежать чрезмерного обобщения очень специфической проблемы и быть менее подверженным ошибкам.во время выполнения.
Может ли кто-нибудь указать мне какой-либо авторитетный справочный материал, в котором указано, что вам следует избегать такого рода паттернов?Или, альтернативно, если это действительно хорошая модель, пожалуйста, дайте обоснование.