Junior — Middle
Wyjaśnij zasadę działania i cel wzorca 'fabryka' w programowaniu obiektowym.
sobes.tech AI
Odpowiedź od AI
Wzorzec «Fabryka» (Factory) służy do tworzenia obiektów bez wskazywania konkretnej klasy tworzonego obiektu. Jego głównym celem jest enkapsulacja logiki tworzenia obiektów, co ułatwia rozbudowę i utrzymanie kodu.
Zasada działania:
- Klient odwołuje się do metody lub klasy fabryki, która zwraca obiekt interfejsu lub klasy bazowej.
- Fabryka decyduje, jaki konkretny klasa ma zostać utworzona, ukrywając szczegóły przed klientem.
Przykład w C#:
// Interfejs produktu
interface IAnimal {
void Speak();
}
// Konkretnie produkty
class Dog : IAnimal {
public void Speak() => Console.WriteLine("Hau");
}
class Cat : IAnimal {
public void Speak() => Console.WriteLine("Miau");
}
// Fabryka
class AnimalFactory {
public static IAnimal CreateAnimal(string type) {
return type switch {
"dog" => new Dog(),
"cat" => new Cat(),
_ => throw new ArgumentException("Nieznany typ zwierzęcia")
};
}
}
// Użycie
var animal = AnimalFactory.CreateAnimal("dog");
animal.Speak(); // Wyświetli "Hau"
Takie podejście ułatwia dodawanie nowych typów obiektów bez konieczności zmiany kodu klienta.