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