Sobes.tech
Junior — Middle

Explica principiul de funcționare și scopul pattern-ului 'fabrica' în programarea orientată pe obiecte.

sobes.tech AI

Răspuns de la AI

Modelul „Fabrica” (Factory) este utilizat pentru a crea obiecte fără a specifica clasa concretă a obiectului creat. Scopul său principal este încapsularea logicii de creare a obiectelor, ceea ce facilitează extinderea și întreținerea codului.

Principiul de funcționare:

  • Clientul apelează o metodă sau o clasă de fabrică care returnează un obiect de interfață sau clasă de bază.
  • Fabrica decide ce clasă concretă să creeze, ascunzând detaliile de client.

Exemplu în C#:

// Interfața produsului
interface IAnimal {
    void Speak();
}

// Produse concrete
class Dog : IAnimal {
    public void Speak() => Console.WriteLine("Ham");
}
class Cat : IAnimal {
    public void Speak() => Console.WriteLine("Miau");
}

// Fabrica
class AnimalFactory {
    public static IAnimal CreateAnimal(string type) {
        return type switch {
            "dog" => new Dog(),
            "cat" => new Cat(),
            _ => throw new ArgumentException("Tip de animal necunoscut")
        };
    }
}

// Utilizare
var animal = AnimalFactory.CreateAnimal("dog");
animal.Speak(); // Va afișa "Ham"

Această abordare facilitează adăugarea de noi tipuri de obiecte fără a modifica codul clientului.