Junior — Middle
Qual padrão de design é usado para determinar a ordem de comparação de objetos?
sobes.tech IA
Resposta da IA
Para determinar a ordem de comparação de objetos, geralmente utiliza-se o padrão de projeto Strategy (Estratégia).
Este permite definir uma família de algoritmos de comparação, encapsulá-los e usá-los de forma intercambiável.
Em Java, isso é frequentemente implementado através da interface Comparator<T>, que define um método para comparar dois objetos.
Exemplo:
import java.util.*;
class Person {
String name;
int age;
Person(String name, int age) {
this.name = name;
this.age = age;
}
}
// Estratégia de comparação por idade
class AgeComparator implements Comparator<Person> {
public int compare(Person p1, Person p2) {
return Integer.compare(p1.age, p2.age);
}
}
// Uso
List<Person> people = Arrays.asList(new Person("Alice", 30), new Person("Bob", 25));
Collections.sort(people, new AgeComparator());
Assim, o padrão Strategy permite alterar a lógica de comparação sem modificar a classe dos objetos.