Sobes.tech
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)