Sobes.tech
Junior — Middle

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

sobes.tech AI

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

«ფაბრიკა» (Factory) ნიმუში გამოიყენება ობიექტების შექმნისთვის, როდესაც არ არის მითითებული კონკრეტული კლასი, რომელ ობიექტს უნდა შექმნას. მისი ძირითადი მიზანია ობიექტების შექმნის ლოგიკის ინკაფსულაცია, რაც ამარტივებს კოდის გაფართოებას და შენარჩუნებას.

სამუშაო პრინციპი:

  • მომხმარებელი მიმართავს ფაბრიკის მეთოდს ან კლასს, რომელიც აბრუნებს ინტერფეისის ან ბაზის კლასის ობიექტს.
  • ფაბრიკა გადაწყვეტს, რომელი კონკრეტული კლასი უნდა შეიქმნას, და ამ隐ფარებს დეტალებს მომხმარებლისგან.

მაგალითი C#-ში:

// პროდუქტის ინტერფეისი
interface IAnimal {
    void Speak();
}

// კონკრეტული პროდუქტები
class Dog : IAnimal {
    public void Speak() => Console.WriteLine("ჰავ");
}
class Cat : IAnimal {
    public void Speak() => Console.WriteLine("მiau");
}

// ფაბრიკა
class AnimalFactory {
    public static IAnimal CreateAnimal(string type) {
        return type switch {
            "dog" => new Dog(),
            "cat" => new Cat(),
            _ => throw new ArgumentException("უცნობი ცხოველის ტიპი")
        };
    }
}

// გამოყენება
var animal = AnimalFactory.CreateAnimal("dog");
animal.Speak(); // გამოიტანს "ჰავ"

ეს მიდგომა ხელს უწყობს ახალი ობიექტის ტიპების დამატებას, მომხმარებლის კოდის შეცვლის გარეშე.