Sobes.tech
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.