Junior — Middle
Millist disainimustritsa kasutatakse objektide võrdlemise järjekorra määramiseks?
sobes.tech AI
Vastus AI-lt
Tavaliselt määratakse objektide võrdlemise järjekord Strategy (Strateegia) disainimustriga.
See võimaldab määratleda võrdlusalgoritmide perekonna, igaüht neist kapseldada ja vahetatavalt kasutada.
Java-s realiseeritakse seda sageli Comparator<T> liidese kaudu, mis määrab meetodi kahe objekti võrdlemiseks.
Näide:
import java.util.*;
class Person {
String name;
int age;
Person(String name, int age) {
this.name = name;
this.age = age;
}
}
// Vanuse võrdlusstrateegia
class AgeComparator implements Comparator<Person> {
public int compare(Person p1, Person p2) {
return Integer.compare(p1.age, p2.age);
}
}
// Kasutus
List<Person> people = Arrays.asList(new Person("Alice", 30), new Person("Bob", 25));
Collections.sort(people, new AgeComparator());
Seega võimaldab Strategy muster muuta võrdlusloogikat ilma objektide klassi muutmata.