Sobes.tech
Junior — Middle

Jakiego wzorca projektowego używa się do określenia kolejności porównywania obiektów?

sobes.tech AI

Odpowiedź od AI

Aby określić kolejność porównania obiektów, zwykle używa się wzorca projektowego Strategy (Strategia).

Pozwala on zdefiniować rodzinę algorytmów porównania, kapsułkować je i używać wymiennie.

W Java często realizuje się to za pomocą interfejsu Comparator<T>, który określa metodę porównującą dwa obiekty.

Przykład:

import java.util.*;

class Person {
    String name;
    int age;
    Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

// Strategia porównania według wieku
class AgeComparator implements Comparator<Person> {
    public int compare(Person p1, Person p2) {
        return Integer.compare(p1.age, p2.age);
    }
}

// Użycie
List<Person> people = Arrays.asList(new Person("Alice", 30), new Person("Bob", 25));
Collections.sort(people, new AgeComparator());

W ten sposób wzorzec Strategy pozwala zmienić logikę porównania bez modyfikacji klasy obiektów.