Sobes.tech
Junior — Middle

Πώς μπορεί ο εξωτερικός κώδικας να τροποποιήσει την κατάσταση μιας κλάσης;

sobes.tech AI

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

Ο εξωτερικός κώδικας μπορεί να τροποποιήσει την κατάσταση μιας κλάσης με διάφορους τρόπους:

  1. Μέσω δημόσιων μεθόδων (setters) — η κλάση παρέχει μεθόδους για την αλλαγή των πεδίων της, π.χ. setName(String name).
  2. Μέσω δημόσιων πεδίων — αν τα πεδία της κλάσης δηλωθούν ως public, ο εξωτερικός κώδικας μπορεί να τα αλλάξει απευθείας (δεν συνιστάται λόγω παραβίασης της ενκασουλατίας).
  3. Χρήση σχεδιαστικών μοτίβων — π.χ. μέσω του μοτίβου Builder ή μεθόδων που επιστρέφουν μεταβλητά αντικείμενα.

Παράδειγμα σε Kotlin (Android):

class User {
    var name: String = ""
        private set // απαγορεύουμε την άμεση αλλαγή από έξω

    fun updateName(newName: String) {
        name = newName
    }
}

val user = User()
user.updateName("Иван") // αλλαγή κατάστασης μέσω μεθόδου

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