Sobes.tech
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.