Sobes.tech
Junior — Middle

Spiega il concetto di incapsulamento dei dati nella programmazione orientata agli oggetti.

sobes.tech AI

Risposta dell'AI

L'incapsulamento è un principio della programmazione orientata agli oggetti che implica nascondere lo stato interno di un oggetto e fornire l'accesso ad esso solo tramite metodi (interfacce).

In Go, l'incapsulamento si ottiene attraverso la visibilità degli identificatori:

  • I nomi che iniziano con una lettera maiuscola vengono esportati e sono accessibili da altri pacchetti (pubblici).
  • I nomi che iniziano con una lettera minuscola sono accessibili solo all'interno del pacchetto (privati).

Pertanto, per incapsulare i dati, bisogna dichiarare i campi della struttura con una lettera minuscola e fornire metodi per accedervi e modificarli.

Esempio:

package user

type User struct {
    name string // campo privato
}

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
}

Questo approccio permette di controllare l'accesso ai dati, garantire la loro integrità e modificare l'implementazione interna senza influenzare il codice esterno.