Sobes.tech
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 επιτρέπει την αλλαγή της λογικής σύγκρισης χωρίς να τροποποιείται η κλάση των αντικειμένων.