Sobes.tech
Junior — Middle

რა საერთო თვისებები აერთიანებს კლასებსა და ინტერფეისებს ობიექტზე ორიენტირებულ პროგრამირებაში?

sobes.tech AI

პასუხი AI-სგან

ობიექტზე ორიენტირებული პროგრამირების სფეროში კლასები და ინტერფეისები რამდენიმე საერთო თვისებას იყოფიან:

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

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

მაგალითი Go-ში:

// ინტერფეისი
 type Reader interface {
     Read(p []byte) (n int, err error)
 }

// სტრუქტურა, რომელიც ახორციელებს ინტერფეისს
 type File struct {}

 func (f File) Read(p []byte) (n int, err error) {
     // რეალიზაცია
     return 0, nil
 }

 func main() {
     var r Reader = File{}
     r.Read(nil)
 }