В базе кода, где я работаю, есть объект, называемый Pair, где A и B - типы первого и второго значений в Pair. Я считаю, что этот объект оскорбителен, потому что он используется вместо объекта с четко обозначенными членами. Поэтому я нахожу это:
List<Pair<Integer, Integer>> productIds = blah();
// snip many lines and method calls
void doSomething(Pair<Integer, Integer> id) {
Integer productId = id.first();
Integer quantity = id.second();
}
Вместо
class ProductsOrdered {
int productId;
int quantityOrdered;
// accessor methods, etc
}
List<ProductsOrderded> productsOrdered = blah();
Многие другие виды использования пары в кодовой базе также плохо пахнут.
I Googled кортежи, и они, кажется, часто неправильно понимаются или используются сомнительными способами. Есть ли убедительные аргументы в пользу или против их использования? Я могу оценить, не желая создавать огромные иерархии классов, но существуют ли реалистичные кодовые базы, где иерархия классов взрывается, если кортежи не используются?