Je suis un peu confus au sujet de l'avis d'utiliser l'interface pour une classe Java, comme dans ce fil: Why should the interface for a Java class be preferred?Utilisation des interfaces sur les classes
Je comprends pourquoi vous voulez utiliser l'interface: si quelque chose change plus tard vous avez moins de code à nettoyer.
Mais n'y a-t-il pas des cas où l'utilisation de l'interface vous empêcherait de tirer parti de la performance, raison pour laquelle vous avez choisi cette classe en particulier? Par exemple, si j'ai une TreeMap, je suppose que je devrais être capable de localiser n'importe quel élément au maximum O (logn). C'est pourquoi il a de bonnes méthodes dont je peux tirer profit comme higherEntry(), lowerEntry(), lastEntry(). Si je référence à la place cette TreeMap comme une carte, maintenant je crois que je suis forcé d'itérer un élément à la fois à travers ma liste dans O (n) pour localiser cette entrée. Je suis nouveau à Java, alors laissez-moi savoir si quelque chose me manque ici.
Je vois. Oui, NavigableMap fournit toutes ces fonctionnalités. Donc, peut-être pour n'importe quel cas que je pourrais imaginer comme ceci une sous-interface existe? – vmayer
@vmayer .. Eh bien, vous ne pouvez pas déduire un design particulier pour tous les cas qui cherchent jsut à un cas.Ce n'est pas dur et rapide, que vous pourriez avoir plusieurs interfaces convergeant toutes les méthodes de votre classe. Mais dans les cas maximum, oui, cela devrait être vrai. –