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

ამ მაგალითში, სხვადასხვა ტიპები ახორციელებენ ერთ ინტერფეისს, რაც პოლიმორფიზმს აჩვენებს.