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("Мяу");
}

// Фабрика
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(); // Натиҷа "Гав"

Ин усул ба илова кардани навъҳои нав ба объектҳо бидуни тағир додани коди муштарӣ кӯмак мекунад.