У меня есть list
объектов, которые реализуют Comparable
.
Я хочу отсортировать этот список, и поэтому я использовал Comparable
.
Каждый объект имеет поле, weight
, которое состоит из 3 других переменных типа int.
compareTo
возвращает 1
для объекта с наибольшим количеством weight
.
Наибольшее значение имеет вес не только, если
weightObj1.member1 > weightObj2.member1
weightObj1.member2 > weightObj2.member2
weightObj1.member3 > weightObj2.member3
, но на самом деле немного большесложный, и я в конечном итоге с кодом слишком много условных if.
Если weightObj1.member1 > weightObj2.member1
имеет значение, то меня волнует weightObj1.member2 > weightObj2.member2
.
и наоборот.
В противном случае, если weightObj1.member2 > weightObj2.member2
выполнено, я забочусь о weightObj1.member3 > weightObj2.member3
и наоборот.
Наконец, если выполняется weightObj1.member3 > weightObj2.member3
И если определенное условие выполнено, тогда это weightObj1
выигрывает и наоборот
Мне было интересно, есть ли подход к проектированию для чего-то подобного?