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 үлгісі салыстыру логикасын өзгертуге мүмкіндік береді, объектілер класына өзгеріс енгізбестен.