J'ai entendu l'argument selon lequel vous devriez utiliser l'interface la plus générique disponible afin de ne pas être lié à une implémentation particulière de cette interface. Cette logique s'applique-t-elle aux interfaces telles que java.util.Collection ?
Je préfère de loin voir quelque chose comme ceci:
List<Foo> getFoos()
ou
Set<Foo> getFoos()
au lieu de
Collection<Foo> getFoos()
Dans le dernier cas, je ne sais pas à quel type d'ensemble de données je fais face, alors que dans les deux premiers cas, je peux faire des hypothèses sur l'ordre et l'unicité. Java.util.Collection a- t -il une utilité en dehors d'être un parent logique pour les ensembles et les listes?
Si vous rencontriez du code qui employait Collection lors d'une révision de code, comment détermineriez-vous si son utilisation est justifiée et quelles suggestions feriez-vous pour son remplacement par une interface plus spécifique?
Collection<List<?>>
? Parlez de coder l'horreur!