Sobes.tech
Junior — Middle

Vysvetlite princíp fungovania a účel vzoru 'fabrika' v objektovo orientovanom programovaní.

sobes.tech AI

Odpoveď od AI

Vzor «Fabrika» (Factory) saťahuje objekty bez určenia konkrétnej triedy vytváraného objektu. Jeho hlavný účel je enkapsulácia logiky vytvárania objektov, čo uľahčuje rozšírenie a údržbu kódu.

Princíp fungovania:

  • Klient sa obracia na továrenskú metódu alebo triedu, ktorá vracia objekt rozhrania alebo základnej triedy.
  • Fabrika rozhodne, akú konkrétnu triedu vytvoriť, a skryje detaily pred klientom.

Príklad v C#:

// Rozhranie produktu
interface IAnimal {
    void Speak();
}

// Konkrétne produkty
class Dog : IAnimal {
    public void Speak() => Console.WriteLine("Hav");
}
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ámy typ zvieraťa")
        };
    }
}

// Použitie
var animal = AnimalFactory.CreateAnimal("dog");
animal.Speak(); // Vytlačí "Hav"

Tento prístup uľahčuje pridávanie nových typov objektov bez zmeny klientského kódu.