Junior — Middle
Milyen tervezési mintát használnak az objektumok összehasonlítási sorrendjének meghatározására?
sobes.tech MI
Válasz az MI-től
Az objektumok összehasonlítási sorrendjének meghatározásához általában az Strategy (Stratégia) tervezési mintát használják.
Ez lehetővé teszi, hogy egy összehasonlítási algoritmus családját definiáljuk, mindegyiket becsomagoljuk, és cserélhető módon használjuk.
Java-ban ezt gyakran az Comparator<T> interfész segítségével valósítják meg, amely két objektum összehasonlítására szolgáló metódust határoz meg.
Példa:
import java.util.*;
class Person {
String name;
int age;
Person(String name, int age) {
this.name = name;
this.age = age;
}
}
// Az életkor szerinti összehasonlítási stratégia
class AgeComparator implements Comparator<Person> {
public int compare(Person p1, Person p2) {
return Integer.compare(p1.age, p2.age);
}
}
// Használat
List<Person> people = Arrays.asList(new Person("Alice", 30), new Person("Bob", 25));
Collections.sort(people, new AgeComparator());
Így a Strategy minta lehetővé teszi az összehasonlítás logikájának megváltoztatását anélkül, hogy az objektum osztályát módosítanánk.