Sobes.tech
Junior

გააზიარეთ ობიექტზე ორიენტირებული პროგრამირების პარადიგმები და პრინციპები.

sobes.tech AI

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

OOP პარადიგმები:

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

OOP პრინციპები (SOLID):

  1. Single Responsibility Principle (SRP): თითოეული კლასი პასუხისმგებელია ერთ კონკრეტულ ფუნქციაზე.
  2. Open/Closed Principle (OCP): კლასები უნდა იყოს გახსნილი გაფართოებისთვის, მაგრამ დახურული ცვლილებებისთვის.
  3. Liskov Substitution Principle (LSP): ბაზის კლასის ობიექტები შეიძლება შეიცვალოს წარმოების კლასის ობიექტებით, ისე რომ პროგრამის სისწორე არ დაირღვეს.
  4. Interface Segregation Principle (ISP): მომხმარებლებმა არ უნდა იყვნენ დამოკიდებული იმ ინტერფეისებზე, რომლებსაც ისინი არ იყენებენ.
  5. Dependency Inversion Principle (DIP): ზედა დონის მოდულები არ უნდა იყვნენ დამოკიდებული ქვედა დონის მოდულებზე. ორივე უნდა იყოს დამოკიდებული აბსტრაქციებზე. აბსტრაქციები არ უნდა იყოს დამოკიდებული დეტალებზე. დეტალები უნდა იყოს დამოკიდებული აბსტრაქციებზე.

ინკაფსულაციის და მემკვიდრეობის მაგალითი:

// ბაზის კლასი
public class Animal
{
    public string Name { get; set; }

    public Animal(string name)
    {
        Name = name;
    }

    public virtual void MakeSound()
    {
        Console.WriteLine("Some generic sound");
    }
}

// წარმოების კლასი
public class Dog : Animal
{
    public Dog(string name) : base(name)
    {
    }

    // ბაზის კლასის მეთოდის გადაფარვა
    public override void MakeSound()
    {
        Console.WriteLine("Woof!");
    }
}

პოლიმორფიზმის მაგალითი:

Animal myAnimal = new Dog("Buddy");
myAnimal.MakeSound(); // გამოიტანს "Woof!"