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)
}