Junior — Middle
Vysvětlete princip fungování a účel vzoru 'fabrika' v objektově orientovaném programování.
sobes.tech AI
Odpověď od AI
Vzor «Fabrika» (Factory) se používá k vytváření objektů bez určení konkrétní třídy vytvářeného objektu. Jeho hlavním účelem je enkapsulace logiky vytváření objektů, což usnadňuje rozšiřování a údržbu kódu.
Princip fungování:
- Klient se obrací na tovární metodu nebo třídu, která vrací objekt rozhraní nebo základní třídy.
- Fabrika rozhodne, jakou konkrétní třídu vytvořit, a skryje detaily před klientem.
Příklad v C#:
// Rozhraní produktu
interface IAnimal {
void Speak();
}
// Konkrétní produkty
class Dog : IAnimal {
public void Speak() => Console.WriteLine("Haf");
}
class Cat : IAnimal {
public void Speak() => Console.WriteLine("Mňau");
}
// Fabrika
class AnimalFactory {
public static IAnimal CreateAnimal(string type) {
return type switch {
"dog" => new Dog(),
"cat" => new Cat(),
_ => throw new ArgumentException("Neznámý typ zvířete")
};
}
}
// Použití
var animal = AnimalFactory.CreateAnimal("dog");
animal.Speak(); // Vytiskne "Haf"
Tento přístup usnadňuje přidávání nových typů objektů bez změny klientského kódu.