Junior
გააზიარეთ ობიექტზე ორიენტირებული პროგრამირების პარადიგმები და პრინციპები.
sobes.tech AI
პასუხი AI-სგან
OOP პარადიგმები:
- ინკაფსულაცია: მონაცემებისა და მეთოდების დამალვა კლასი შიგნით, მათზე წვდომის უზრუნველყოფა ინტერფეისის მეშვეობით.
- მემკვიდრეობა: ახალი კლასების (შვილების) შექმნა არსებული კლასების (მშობლების) საფუძველზე, მათი თვისებების და მეთოდების მემკვიდრეობით.
- პოლიმორფიზმი: შესაძლებლობა გამოიყენოს სხვადასხვა კლასის ობიექტები საერთო ინტერფეისის მეშვეობით, განახორციელოს თითოეული კლასისთვის სპეციფიკური ქცევა.
OOP პრინციპები (SOLID):
- Single Responsibility Principle (SRP): თითოეული კლასი პასუხისმგებელია ერთ კონკრეტულ ფუნქციაზე.
- Open/Closed Principle (OCP): კლასები უნდა იყოს გახსნილი გაფართოებისთვის, მაგრამ დახურული ცვლილებებისთვის.
- Liskov Substitution Principle (LSP): ბაზის კლასის ობიექტები შეიძლება შეიცვალოს წარმოების კლასის ობიექტებით, ისე რომ პროგრამის სისწორე არ დაირღვეს.
- Interface Segregation Principle (ISP): მომხმარებლებმა არ უნდა იყვნენ დამოკიდებული იმ ინტერფეისებზე, რომლებსაც ისინი არ იყენებენ.
- 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!"