Sobes.tech
Junior — Middle

Selgitage 'tehase' mustri tööpõhimõtet ja eesmärki objektorienteeritud programmeerimises.

sobes.tech AI

Vastus AI-lt

Mudel «Fabrika» (Factory) kasutatakse objektide loomisel ilma konkreetse klassi määratlemata. Selle peamine eesmärk on kapseldada objektide loomise loogika, mis lihtsustab koodi laiendamist ja hooldust.

Tööpõhimõte:

  • Klient pöördub fabrika meetodi või klassi poole, mis tagastab liidese või põhiklassi objekti.
  • Fabrika otsustab, millist konkreetset klassi luua, varjates üksikasju kliendi eest.

Näide C#-s:

// Toote liides
interface IAnimal {
    void Speak();
}

// Konkreetne toode
class Dog : IAnimal {
    public void Speak() => Console.WriteLine("Hau");
}
class Cat : IAnimal {
    public void Speak() => Console.WriteLine("Miau");
}

// Fabrika
class AnimalFactory {
    public static IAnimal CreateAnimal(string type) {
        return type switch {
            "dog" => new Dog(),
            "cat" => new Cat(),
            _ => throw new ArgumentException("Tundmatu loomaliik")
        };
    }
}

// Kasutamine
var animal = AnimalFactory.CreateAnimal("dog");
animal.Speak(); // Trükib "Hau"

See lähenemine lihtsustab uute objektitüüpide lisamist ilma kliendikoodi muutmata.