Sobes.tech
Junior — Middle

Hogyan módosíthatja a külső kód egy osztály állapotát?

sobes.tech MI

Válasz az MI-től

A külső kód többféleképpen módosíthatja egy osztály állapotát:

  1. Nyilvános metódusokon (setters) keresztül — az osztály olyan metódusokat biztosít, amelyekkel megváltoztathatja a mezőit, például setName(String name).
  2. Nyilvános mezőkön keresztül — ha az osztály mezői public-ként vannak deklarálva, a külső kód közvetlenül módosíthatja azokat (nem ajánlott az enkapszuláció megsértése miatt).
  3. Tervezési minták alkalmazásával — például a Builder minta vagy olyan metódusokon keresztül, amelyek módosítható objektumokat adnak vissza.

Kotlin (Android) példa:

class User {
    var name: String = ""
        private set // tiltjuk a közvetlen külső módosítást

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

val user = User()
user.updateName("Иван") // állapot módosítása metóduson keresztül

Ezért a legjobb megközelítés az, hogy kontrollált hozzáférést biztosítson az állapot módosításához az osztály metódusain keresztül, megőrizve az enkapszulációt.