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:
- 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). - 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). - 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.