Sobes.tech
Junior — Middle

Quale modello di progettazione viene utilizzato per definire l'ordine di confronto degli oggetti?

sobes.tech AI

Risposta dell'AI

Per determinare l'ordine di confronto degli oggetti, si utilizza generalmente il pattern di progettazione Strategy (Strategia).

Questo consente di definire una famiglia di algoritmi di confronto, incapsularli e usarli in modo intercambiabile.

In Java, ciò viene spesso implementato tramite l'interfaccia Comparator<T>, che definisce un metodo per confrontare due oggetti.

Esempio:

import java.util.*;

class Person {
    String name;
    int age;
    Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

// Strategia di confronto per età
class AgeComparator implements Comparator<Person> {
    public int compare(Person p1, Person p2) {
        return Integer.compare(p1.age, p2.age);
    }
}

// Uso
List<Person> people = Arrays.asList(new Person("Alice", 30), new Person("Bob", 25));
Collections.sort(people, new AgeComparator());

In questo modo, il pattern Strategy permette di cambiare la logica di confronto senza modificare la classe degli oggetti.