Sobes.tech
Junior

Γιατί σε ορισμένες διεπαφές δεν ορίζονται μέθοδοι;

sobes.tech AI

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

Αυτού του είδους οι διεπαφές ονομάζονται διασυνδέσεις marker (σημειωτικές διασυνδέσεις). Δεν περιέχουν μεθόδους και χρησιμοποιούνται για την επισήμανση κλάσεων, υποδεικνύοντας στον μεταγλωττιστή ή JVM ορισμένες ιδιότητες ή σημασιολογία της κλάσης.

Παραδείγματα:

  • java.io.Serializable: Σημειώνει μια κλάση ως σειριοποιήσιμη.
  • java.lang.Cloneable: Δείχνει ότι το αντικείμενο μπορεί να κλωνοποιηθεί.
  • java.util.RandomAccess: Βελτιστοποιεί την τυχαία πρόσβαση στα στοιχεία μιας λίστας.

Πλεονεκτήματα:

  • Σημασιολογία: Υποδεικνύουν ρητά την πρόθεση του προγραμματιστή σχετικά με την κλάση.
  • Πολυμορφισμός: Επιτρέπουν τη χρήση πολυμορφικών κλήσεων, δουλεύοντας με μια ομάδα κλάσεων που υλοποιούν μια ίδια διασύνδεση marker.
  • Επισήμανση: Μπορούν να χρησιμοποιηθούν για την παροχή πρόσθετων πληροφοριών στα εργαλεία (π.χ., πλαίσια, ORM).

Εναλλακτικές (ανάλογα με το πλαίσιο):

  • Ανάγνωσης (@interface).
  • Αφηρημένες κλάσεις.

Οι διασυνδέσεις marker προτιμώνται όταν χρειάζεται να επισημάνετε ένα χαρακτηριστικό της κλάσης χωρίς να προσθέσετε συμπεριφορά.