Sobes.tech
Junior — Middle

Magyarázza el az 'gyár' mintázat működési elvét és célját az objektumorientált programozásban.

sobes.tech MI

Válasz az MI-től

A «Factory» (Gyár) minta arra szolgál, hogy objektumokat hozzon létre anélkül, hogy meg kellene határozni a létrehozott objektum konkrét osztályát. Fő célja az objektumok létrehozási logikájának inkapszulálása, ami megkönnyíti a kód bővítését és karbantartását.

Működési elv:

  • Az ügyfél egy gyári metódushoz vagy osztályhoz fordul, amely egy interfész vagy alaposztály objektumát adja vissza.
  • A gyár eldönti, melyik konkrét osztályt hozza létre, és elrejti a részleteket az ügyfél elől.

Példa C#-ban:

// Termék interfész
interface IAnimal {
    void Speak();
}

// Konkrét termékek
class Dog : IAnimal {
    public void Speak() => Console.WriteLine("Vau");
}
class Cat : IAnimal {
    public void Speak() => Console.WriteLine("Miau");
}

// Gyár
class AnimalFactory {
    public static IAnimal CreateAnimal(string type) {
        return type switch {
            "dog" => new Dog(),
            "cat" => new Cat(),
            _ => throw new ArgumentException("Ismeretlen állat típus")
        };
    }
}

// Használat
var animal = AnimalFactory.CreateAnimal("dog");
animal.Speak(); // "Vau"-t ír ki

Ez a megközelítés megkönnyíti új objektumtípusok hozzáadását anélkül, hogy módosítani kellene a klienskódot.