J'ai une liste d'objets que je dois trier sur un champ, disons Score. Sans trop réfléchir, j'ai écrit une nouvelle classe qui implémente Comparator, qui fait le travail et qui fonctionne.
Maintenant, en y repensant, je me demande si je n'aurais pas dû faire en sorte que ma classe implémente Comparable au lieu de créer une nouvelle classe qui implémente Comparator. Le score est le seul champ sur lequel les objets seront classés.
-
Ce que j'ai fait d'acceptable comme pratique ?
-
La bonne approche consiste-t-elle à "faire en sorte que la classe implémente d'abord Comparable (pour l'ordre naturel) et si une autre comparaison de champs est nécessaire, alors créer une nouvelle classe qui implémente Comparator" ?
-
Si (2) ci-dessus est vrai, cela signifie-t-il que l'on doit implémenter Comparator seulement après que la classe ait implémenté Comparable ? (En supposant que je possède la classe originale).