Sobes.tech
Junior — Middle

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

sobes.tech AI

Отговор от 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 позволява да се променя логиката на сравнение без да се променя класът на обектите.