У меня есть список объектов, которые мне нужно отсортировать по полю, скажем, Score. Не задумываясь, я написал новый класс, который реализует Comparator, который выполняет задачу, и она работает.
Теперь, оглядываясь назад на это, я задаюсь вопросом, должен ли я вместо этого иметь мой класс, реализующий Comparable, вместо того, чтобы создавать новый класс, который реализует Comparator. Счет - это единственное поле, в котором объекты будут упорядочены.
Что я сделал приемлемым в качестве практики?
Правильный ли подход: «Сначала нужно, чтобы класс реализовал Comparable (для естественного упорядочения), и если требуется альтернативное сравнение полей, то создайте новый класс, который реализует Comparator»?
Если (2) выше верно, то означает ли это, что следует реализовывать Comparator только после того, как класс реализует Comparable? (Предполагая, что мне принадлежит оригинальный класс).