Junior — Middle
შეგიძლიათ დაასახელოთ ობიექტზე ორიენტირებული პროგრამირების ძირითადი ნიმუშები?
sobes.tech AI
პასუხი AI-სგან
ობიექტზე ორიენტირებული პროგრამირების (OOP) ძირითადი ნიმუშებია:
- მემკვიდრეობა (Inheritance): საშუალებას აძლევს შექმნათ ახალი კლასი არსებული კლასების საფუძველზე, მემკვიდრეობით იღებს მათ თვისებებს და მეთოდებს.
- კაპსულაცია (Encapsulation): დამალული აქვს ობიექტის შიდა დეტალები, ხელმისაწვდომია მხოლოდ საჯარო მეთოდების მეშვეობით.
- პოლიმორფიზმი (Polymorphism): სხვადასხვა კლასის ობიექტები ერთნაირ შეტყობინებებს (მეთოდებს) სხვადასხვაგვარად პასუხობენ.
- აბსტრაქცია (Abstraction): ხაზს უსვამს ობიექტის არსებით თვისებებს, დამალული აქვს არასაჭირო დეტალები.
ეს ნიმუშები ეხმარება შექმნათ მოქნილი, გაფართოებადი და შენარჩუნებადი პროგრამები.
მაგალითი Go-ში (ინტერფეისების გამოყენებით პოლიმორფიზმისთვის):
package main
import "fmt"
type Animal interface {
Speak() string
}
type Dog struct{}
func (d Dog) Speak() string {
return "ჰაუუ!"
}
type Cat struct{}
func (c Cat) Speak() string {
return "მიუ!"
}
func main() {
animals := []Animal{Dog{}, Cat{}}
for _, animal := range animals {
fmt.Println(animal.Speak())
}
}
ამ მაგალითში, სხვადასხვა ტიპები ახორციელებენ ერთ ინტერფეისს, რაც პოლიმორფიზმს აჩვენებს.