Sobes.tech
Junior — Middle

Ako môže externý kód modifikovať stav triedy?

sobes.tech AI

Odpoveď od AI

Vonkajší kód môže meniť stav triedy rôznymi spôsobmi:

  1. Prostredníctvom verejných metód (setterov) — trieda poskytuje metódy na zmenu svojich polí, napríklad setName(String name).
  2. Prostredníctvom verejných polí — ak sú polia triedy deklarované ako public, vonkajší kód ich môže meniť priamo (neodporúča sa kvôli narušeniu enkapsulácie).
  3. Použitím návrhových vzorov — napríklad cez Builder alebo metódy, ktoré vracajú zmeniteľné objekty.

Príklad v Kotlin (Android):

class User {
    var name: String = ""
        private set // zakazujeme priame vonkajšie zmeny

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

val user = User()
user.updateName("Иван") // zmena stavu cez metódu

Najlepší prístup je poskytnúť kontrolovaný prístup ku zmene stavu prostredníctvom metód triedy, zachovávajúc enkapsuláciu.