Junior — Middle
Πώς μπορεί ο εξωτερικός κώδικας να τροποποιήσει την κατάσταση μιας κλάσης;
sobes.tech AI
Απάντηση από AI
Ο εξωτερικός κώδικας μπορεί να τροποποιήσει την κατάσταση μιας κλάσης με διάφορους τρόπους:
- Μέσω δημόσιων μεθόδων (setters) — η κλάση παρέχει μεθόδους για την αλλαγή των πεδίων της, π.χ.
setName(String name). - Μέσω δημόσιων πεδίων — αν τα πεδία της κλάσης δηλωθούν ως
public, ο εξωτερικός κώδικας μπορεί να τα αλλάξει απευθείας (δεν συνιστάται λόγω παραβίασης της ενκασουλατίας). - Χρήση σχεδιαστικών μοτίβων — π.χ. μέσω του μοτίβου Builder ή μεθόδων που επιστρέφουν μεταβλητά αντικείμενα.
Παράδειγμα σε Kotlin (Android):
class User {
var name: String = ""
private set // απαγορεύουμε την άμεση αλλαγή από έξω
fun updateName(newName: String) {
name = newName
}
}
val user = User()
user.updateName("Иван") // αλλαγή κατάστασης μέσω μεθόδου
Έτσι, η καλύτερη προσέγγιση είναι να παρέχετε ελεγχόμενη πρόσβαση στην αλλαγή της κατάστασης μέσω των μεθόδων της κλάσης, διατηρώντας την ενκασουλατία.