Sobes.tech
Junior — Middle

Explique o princípio de funcionamento e o propósito do padrão 'fábrica' na programação orientada a objetos.

sobes.tech IA

Resposta da IA

O padrão «Fábrica» (Factory) é utilizado para criar objetos sem especificar a classe concreta do objeto a ser criado. A sua principal finalidade é encapsular a lógica de criação de objetos, o que facilita a expansão e manutenção do código.

Princípio de funcionamento:

  • O cliente acede a um método ou classe de fábrica que devolve um objeto de interface ou classe base.
  • A fábrica decide qual a classe concreta a criar, escondendo os detalhes do cliente.

Exemplo em C#:

// Interface do produto
interface IAnimal {
    void Speak();
}

// Produtos concretos
class Dog : IAnimal {
    public void Speak() => Console.WriteLine("Auau");
}
class Cat : IAnimal {
    public void Speak() => Console.WriteLine("Miau");
}

// Fábrica
class AnimalFactory {
    public static IAnimal CreateAnimal(string type) {
        return type switch {
            "dog" => new Dog(),
            "cat" => new Cat(),
            _ => throw new ArgumentException("Tipo de animal desconhecido")
        };
    }
}

// Uso
var animal = AnimalFactory.CreateAnimal("dog");
animal.Speak(); // Vai imprimir "Auau"

Este método facilita a adição de novos tipos de objetos sem alterar o código do cliente.