Sobes.tech
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.