Sobes.tech
Junior — Middle

Εξηγήστε την έννοια του Interceptor στη Java και ποιο είναι το σκοπό του

sobes.tech AI

Απάντηση από AI

Το Interceptor είναι ένα μοτίβο σχεδίασης που επιτρέπει την παρεμβολή σε κλήσεις μεθόδων, αιτήματα ή μηνύματα για την εκτέλεση πρόσθετης λογικής πριν ή μετά τη κύρια ενέργεια.

Στη Java, ο Interceptor χρησιμοποιείται συχνά σε τεχνολογίες όπως το Java EE (π.χ., CDI, EJB), όπου μπορούν να οριστούν μέθοδοι που καλούνται αυτόματα κατά την κλήση επιχειρηματικών μεθόδων, για την υλοποίηση διασταυρούμενων λειτουργιών: καταγραφή, συναλλαγές, ασφάλεια, cache κ.ά.

Παράδειγμα ενός απλού Interceptor σε Java EE:

@Interceptor
public class LoggingInterceptor {
    @AroundInvoke
    public Object logMethod(InvocationContext ctx) throws Exception {
        System.out.println("Κλήση μεθόδου: " + ctx.getMethod().getName());
        Object result = ctx.proceed(); // κλήση του στόχου
        System.out.println("Η μέθοδος ολοκληρώθηκε");
        return result;
    }
}

Ο σκοπός του Interceptor είναι να διαχωρίσει τη βοηθητική λογική από την κύρια, να αυξήσει τη δομική modularity και την επαναχρησιμοποίηση κώδικα.