私が作業しているコードベースには、A と B がペアの最初と 2 番目の値の型であるペアというオブジェクトがあります。このオブジェクトは、明確に名前が付けられたメンバーを持つオブジェクトの代わりに使用されるため、攻撃的であることがわかりました。だから私はこれを見つけます:
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();
コードベースでの Pair の他の多くの使用法も、同様に悪臭を放っています。
私はタプルをグーグルで検索しましたが、それらはしばしば誤解されたり、疑わしい方法で使用されたりしているようです。それらの使用に賛成または反対する説得力のある議論はありますか? 巨大なクラス階層を作成したくないのは理解できますが、タプルを使用しないとクラス階層が爆発する現実的なコードベースはありますか?