Ho sentito l'argomento secondo cui dovresti usare l'interfaccia più generica disponibile per non essere legato a una particolare implementazione di tale interfaccia. Questa logica si applica a interfacce come java.util.Collection ?
Preferirei piuttosto vedere qualcosa di simile al seguente:
List<Foo> getFoos()
o
Set<Foo> getFoos()
invece di
Collection<Foo> getFoos()
Nell'ultimo caso, non so che tipo di set di dati ho a che fare, mentre nei primi due casi posso fare alcune ipotesi sull'ordinamento e l'unicità. java.util.Collection ha un'utilità al di fuori dell'essere un genitore logico per entrambi i gruppi e gli elenchi?
Se ti imbatti in un codice che utilizza Raccolta quando esegui una revisione del codice, in che modo stabilisci se il suo utilizzo è giustificato e quali sono i tuoi suggerimenti per la sua sostituzione con un'interfaccia più specifica?