En général, je suis d'accord pour dire que découpler l'interface de l'implémentation est une bonne chose et rendra votre code plus facile à maintenir.
Il existe toutefois des exceptions dont vous devez tenir compte. L'accès aux objets par le biais d'interfaces ajoute une couche supplémentaire d'indirection qui rendra votre code plus lent.
Par curiosité, j'ai réalisé une expérience qui a généré dix milliards d'accès séquentiels à une liste de tableaux d'un million de caractères. Sur mon MacBook 2.4Ghz, l'accès à la liste de tableaux par l'intermédiaire de l'interface List a pris 2,10 secondes en moyenne, alors qu'en la déclarant de type ArrayList, cela a pris en moyenne 1,67 seconde.
Si vous travaillez avec de grandes listes, au cœur d'une boucle interne ou d'une fonction fréquemment appelée, il faut en tenir compte.
0 votes
Voir aussi stackoverflow.com/questions/383947/