Sobes.tech
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
}

ეს მიდგომა საშუალებას აძლევს აკონტროლოს მონაცემებზე წვდომა, უზრუნველყოს მათი მთლიანობა და შეცვალოს შიდა განხორციელება გარეგანი კოდის ზემოქმედების გარეშე.