Sobes.tech
Назад к вопросам
Junior — Middle
100

Какой шаблон проектирования используется для определения порядка сравнения объектов?

Ответ от нейросети

sobes.tech AI

Для определения порядка сравнения объектов обычно используется шаблон проектирования Strategy (Стратегия).

Он позволяет определить семейство алгоритмов сравнения, инкапсулировать каждый из них и использовать взаимозаменяемо.

В Java это часто реализуется через интерфейс Comparator<T>, который задаёт метод сравнения двух объектов.

Пример:

import java.util.*;

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

// Стратегия сравнения по возрасту
class AgeComparator implements Comparator<Person> {
    public int compare(Person p1, Person p2) {
        return Integer.compare(p1.age, p2.age);
    }
}

// Использование
List<Person> people = Arrays.asList(new Person("Alice", 30), new Person("Bob", 25));
Collections.sort(people, new AgeComparator());

Таким образом, шаблон Strategy позволяет менять логику сравнения без изменения класса объектов.