Uma das qualidades de código mais importantes é a legibilidade. Então, pergunte a si mesmo:
quando eu (ou seja, em qualquer outra pessoa além de você) olhar para a assinatura do método, sei o significado dos respectivos componentes do Tuple
?
Por exemplo, se o par de carros alegóricos que você está retornando é um conjunto de coordenadas polares, isso está claro?
Isto está claro:
Tuple<Float, Float> getPolarCoords();
Isso é enganoso (porque seria assumido coordenadas cartesianas):
Tuple<Float, Float> getCoords();
E este é um significado desprovido:
Tuple<Float, Float> getTuple();
De modo geral, você avaliará a clareza caso a caso e refatorará, se necessário. Se você representa o mesmo tipo de dados que Tuple
em muitos lugares diferentes, criar uma classe é definitivamente uma boa ideia.