Sobes.tech
Junior — Middle

Vysvětlete koncept zapouzdření dat v objektově orientovaném programování.

sobes.tech AI

Odpověď od AI

Zapouzdření je princip objektově orientovaného programování, který předpokládá skrytí vnitřního stavu objektu a poskytování přístupu k němu pouze prostřednictvím metod (rozhraní).

V jazyce Go je zapouzdření dosaženo pomocí viditelnosti identifikátorů:

  • Jména začínající velkým písmenem jsou exportována a jsou dostupná z jiných balíčků (veřejná).
  • Jména začínající malým písmenem jsou dostupná pouze uvnitř balíčku (soukromá).

Pro zapouzdření dat je třeba deklarovat pole struktury malým písmenem a poskytnout metody pro přístup a změnu těchto polí.

Příklad:

package user

type User struct {
    name string // soukromé pole
}

func NewUser(name string) *User {
    return &User{name: name}
}

func (u *User) GetName() string {
    return u.name
}

func (u *User) SetName(name string) {
    u.name = name
}

Tento přístup umožňuje kontrolovat přístup k datům, zajišťovat jejich integritu a měnit interní implementaci bez vlivu na externí kód.