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:
- Prostredníctvom verejných metód (setterov) — trieda poskytuje metódy na zmenu svojich polí, napríklad
setName(String name). - 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). - 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.