Junior
Ποια είναι η διαφορά μεταξύ ενός κανονικού αντικειμένου και ενός JavaBean;
sobes.tech AI
Απάντηση από AI
Η διαφορά βρίσκεται στην τήρηση των κανόνων ονοματοδοσίας (κεφαλαίο γράμμα μετά το "get/set/is") για τις μεθόδους πρόσβασης σε ιδιότητες, στην ύπαρξη ενός κατασκευαστή χωρίς ορίσματα και στην σειριοποίηση. Αυτό επιτρέπει τη χρήση JavaBeans με frameworks και εργαλεία που βασίζονται στην ενδοσκόπηση.
Ένα κανονικό αντικείμενο μπορεί να μην ακολουθεί αυτούς τους κανόνες.
public class SimpleObject {
private String name;
public SimpleObject(String name) { // Οποιοσδήποτε κατασκευαστής
this.name = name;
}
public String retrieveName() { // Μη τυπική ονοματοδοσία get
return name;
}
}
import java.io.Serializable;
public class JavaBean implements Serializable { // Διαθέσιμο για σειριοποίηση
private String name;
public JavaBean() { // Κατασκευαστής χωρίς ορίσματα
}
public String getName() { // Τυπική ονοματοδοσία getter
return name;
}
public void setName(String name) { // Τυπική ονοματοδοσία setter
this.name = name;
}
}
Βασικές διαφορές:
| Κριτήριο | Κανονικό αντικείμενο | JavaBean |
|---|---|---|
| Κατασκευαστής χωρίς args | Δεν είναι υποχρεωτικό | Υποχρεωτικό |
| Ονοματοδοσία μεθόδων | Οποιαδήποτε | get/set/is + όνομα ιδιότητας |
| Σειριοποίηση | Δεν είναι υποχρεωτικό | Επιθυμητό/Υποχρεωτικό για ορισμένα frameworks |
| Χρήση | Γενικός σκοπός | Μοντέλο συστατικών, frameworks (Spring, EJB) |