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.