Junior — Middle
გთხოვთ, ახსნათ მონაცემთა ინკაპსულაციის კონცეფცია ობიექტზე ორიენტირებულ პროგრამირებაში.
sobes.tech AI
პასუხი AI-სგან
კაპსულაცია ობიექტ-ორგანიზებული პროგრამირების ერთ-ერთი პრინციპია, რომელიც გულისხმობს ობიექტის შიდა მდგომარეობის დამალვას და მის მხოლოდ მეთოდების (ინტერფეისის) საშუალებით წვდომას.
Go-ში კაპსულაცია აღწევს იდენტიფიკატორების ხილვადობის მეშვეობით:
- სახელები, რომლებიც იწყება დიდი ასოთი, ექსპორტირებულია და სხვა პაკეტებიდან ხელმისაწვდომია (საზოგადოებრივი).
- სახელები, რომლებიც იწყება პატარა ასოთი, ხელმისაწვდომია მხოლოდ პაკეტის შიგნით (პირადი).
ამიტომ, მონაცემების კაპსულაციისთვის, საჭიროა სტრუქტურის ველები გამოაცხადოთ პატარა ასოთი და უზრუნველყოთ მეთოდები ამ ველების წვდომისა და ცვლილებისთვის.
მაგალითი:
package user
type User struct {
name string // პირადი ველი
}
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
}
ეს მიდგომა საშუალებას აძლევს აკონტროლოს მონაცემებზე წვდომა, უზრუნველყოს მათი მთლიანობა და შეცვალოს შიდა განხორციელება გარეგანი კოდის ზემოქმედების გარეშე.