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.