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("Иван") // վիճակի փոփոխություն մեթոդով

Լավագույն մոտեցումը այն է, որ տրամադրել վերահսկվող մուտք դեպի վիճակի փոփոխություն՝ դասի մեթոդների միջոցով, պահպանելով ինկապսուլյացիան։