IRONSOFTWAREHOME
ATUALIZAÇÕES DO DESENVOLVEDOR

Padrão Factory em C# (Como funciona para desenvolvedores)

Curtis Chau
Curtis Chau
Updated: 23 de abril de 2026

O padrão Factory em C# é uma abordagem estrutural que pertence à categoria de padrões de projeto. O padrão de projeto Factory Method em C# visa resolver problemas relacionados à criação de objetos sem especificar a classe criadora exata do objeto a ser criado.

Essencialmente, o padrão Factory lida com a criação de objetos delegando-a a uma classe específica, conhecida como classe de fábrica. Isso permite que um sistema seja mais flexível e fácil de gerenciar, especialmente ao introduzir novos tipos de objetos, já que a classe de fábrica lida com o processo de criação do objeto, reduzindo a dependência das classes concretas. Vamos explorar como o padrão Factory Method, um padrão de projeto de criação em C#, pode ser implementado e utilizado. Exploraremos a biblioteca de geração de PDF do IronPDF mais tarde.

Estrutura do padrão do método básico de fábrica

A ideia central por trás do padrão de método de fábrica é definir uma interface comum para a criação de objetos, permitindo que as subclasses alterem o tipo de objetos que criam. Esse padrão envolve alguns componentes-chave:

  • Interface do Produto: Especifica a estrutura dos objetos criados pelo método de fábrica.
  • Classes de produto concretas: Implemente a interface do produto.
  • Classe Criadora (Classe Abstrata Criadora): Declara o método de fábrica, que retorna um objeto da interface do produto.
  • Criador de Concreto: Modifica o método de fábrica para entregar uma instância do produto de concreto.

Exemplo: Fábrica de Veículos

Considere um cenário em que temos diferentes tipos de veículos, como carros e caminhões. Usaremos o padrão Factory para criar uma fábrica de veículos que possa produzir diferentes tipos de veículos com base na entrada do usuário ou em um arquivo de configuração.

Etapa 1: Defina a interface do produto

public interface IVehicle
{
    // Method to display information about the vehicle
    void DisplayInfo();
}

Etapa 2: Implementar Produtos Concretos

public class Car : IVehicle
{
    // Displays Car specific information
    public void DisplayInfo()
    {
        Console.WriteLine("This is a Car.");
    }
}

public class Truck : IVehicle
{
    // Displays Truck specific information
    public void DisplayInfo()
    {
        Console.WriteLine("This is a Truck.");
    }
}

Passo 3: Criar a classe Abstract Creator

public abstract class VehicleFactory
{
    // Factory Method to create a vehicle instance
    public abstract IVehicle CreateVehicle(string type);
}

Etapa 4: Implementar o Criador Concreto

public class ConcreteVehicleFactory : VehicleFactory
{
    public override IVehicle CreateVehicle(string type)
    {
        // Create vehicle based on type
        switch (type.ToLower())
        {
            case "car": return new Car();
            case "truck": return new Truck();
            default: throw new ArgumentException("Invalid vehicle type");
        }
    }
}

Etapa 5: Utilização do código do cliente

class Program
{
    static void Main(string[] args)
    {
        // Create factory instance
        VehicleFactory factory = new ConcreteVehicleFactory();

        // Create a Car and display its info
        IVehicle car = factory.CreateVehicle("car");
        car.DisplayInfo();

        // Create a Truck and display its info
        IVehicle truck = factory.CreateVehicle("truck");
        truck.DisplayInfo();
    }
}

No exemplo acima, a classe VehicleFactory serve como criadora abstrata, enquanto a classe ConcreteVehicleFactory é a criadora concreta que implementa o método de fábrica CreateVehicle . Este método decide qual tipo de veículo criar com base na entrada recebida. O código do cliente utiliza então a fábrica para criar instâncias de diferentes veículos, promovendo um baixo acoplamento entre a lógica de criação de objetos e o código do cliente.

Padrão de Fábrica C# (Como Funciona para Desenvolvedores): Figura 1 - Saída do Padrão de Design de Fábrica

Vantagens de usar o padrão de fábrica

O modelo de fábrica oferece diversas vantagens, especialmente em sistemas complexos:

  • Acoplamento fraco: O código do cliente interage com interfaces ou classes abstratas em vez de classes de produto concretas. Isso resulta em um design mais flexível e fácil de modificar. Software orientado a objetos reutilizável: O padrão Factory promove a reutilização de código, pois separa a lógica de criação de objetos do sistema, tornando o sistema mais fácil de manter e estender. Flexibilidade na criação de objetos: O método de fábrica permite diferentes implementações para a criação de objetos, que podem ser selecionadas em tempo de execução. Isso é especialmente útil em cenários onde o tipo de objeto necessário pode variar de acordo com fatores externos.

IronPDF: Solução .NET para PDF

Padrão de Fábrica C# (Como Funciona para Desenvolvedores): Figura 2 - IronPDF

IronPDF é uma biblioteca desenvolvida para a plataforma .NET , que auxilia desenvolvedores a criar, editar e manipular arquivos PDF diretamente de HTML , CSS, imagens e JavaScript, sem a necessidade de recorrer a APIs complexas de geração de PDFs. Seu principal diferencial reside na capacidade de transformar conteúdo da web em documentos PDF de forma rápida e precisa, graças ao uso de um mecanismo de renderização baseado no Chrome.

Entre os principais recursos, destacam-se a geração de PDFs a partir de strings HTML ou URLs, a renderização de páginas da web como PDFs em tempo real e a capacidade de trabalhar com aplicativos de formulários, aplicativos de servidor e intranets seguras, entre outros. Seu desempenho é otimizado para eficiência, com recursos para operações assíncronas, registro personalizado e documentação completa para ajudá-lo a começar rapidamente.

O IronPDF se destaca na conversão de HTML para PDF , garantindo a preservação precisa dos layouts e estilos originais. É perfeito para criar PDFs a partir de conteúdo da web, como relatórios, faturas e documentação. Com suporte para arquivos HTML, URLs e strings HTML brutas, o IronPDF produz facilmente documentos PDF de alta qualidade.

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        // Initialize a Pdf Renderer with a Chrome Rendering Engine
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}

Exemplo de código

Para ilustrar como o IronPDF pode ser integrado ao padrão Factory, vamos criar um exemplo simplificado. O padrão Factory é um tipo de padrão de projeto criacional que oferece uma maneira de criar produtos ou objetos concretos dentro de uma superclasse, permitindo que as subclasses modifiquem os objetos específicos que estão sendo produzidos. Isso se encaixa bem na criação de diferentes tipos de documentos PDF com base em necessidades específicas, como a partir de strings HTML, URLs ou arquivos.

Criaremos uma interface chamada IPdfCreator que define um método para criar PDFs e, em seguida, implementaremos diferentes classes de fábrica que criam PDFs de várias maneiras usando o IronPDF.

Passo 1: Defina a interface IPdfCreator

Esta interface declara o método CreatePdf que todas as fábricas concretas implementarão.

public interface IPdfCreator
{
    // Method responsible for creating a PDF
    void CreatePdf(string source);
}

Etapa 2: Implementar fábricas de concreto

Aqui definimos duas implementações concretas de IPdfCreator: uma para criar PDFs a partir de strings HTML e outra a partir de URLs.

public class HtmlStringPdfCreator : IPdfCreator
{
    // Creates a PDF from an HTML string
    public void CreatePdf(string htmlString)
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(htmlString);
        pdf.SaveAs("HtmlStringPdf.pdf");
    }
}

// Create PDF from a given URL
public class UrlPdfCreator : IPdfCreator
{
    public void CreatePdf(string url)
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf(url);
        pdf.SaveAs("UrlPdf.pdf");
    }
}

Etapa 3: Utilizando a Fábrica

Em sua aplicação, agora você pode usar essas fábricas para criar documentos PDF a partir de diferentes fontes, sem se preocupar com os detalhes do processo de criação do PDF.

class Program
{
    static void Main(string[] args)
    {
        // Add your IronPDF license key
        License.LicenseKey = "License-Key";

        // Create PDF from HTML string
        IPdfCreator htmlPdfCreator = new HtmlStringPdfCreator();
        htmlPdfCreator.CreatePdf("<h1>Hello, World!</h1>");

        // Create PDF from URL
        IPdfCreator urlPdfCreator = new UrlPdfCreator();
        urlPdfCreator.CreatePdf("http://example.com");
    }
}

Nessa configuração, HtmlStringPdfCreator e UrlPdfCreator são fábricas concretas que produzem PDFs. A classe Program , atuando como cliente, utiliza essas fábricas sem precisar conhecer os detalhes complexos de como os PDFs são gerados a partir de strings HTML ou URLs. Essa abordagem proporciona flexibilidade, pois permite introduzir novas formas de criar PDFs (por exemplo, a partir de arquivos ou fluxos) simplesmente adicionando mais fábricas que implementam a interface IPdfCreator , seguindo o Princípio Aberto/Fechado do design orientado a objetos.

Saída

As capturas de tela a seguir mostram o resultado do código:

Padrão de Fábrica C# (Como Funciona para Desenvolvedores): Figura 3 - Saída em PDF do Padrão de Design de Fábrica

Padrão de Fábrica C# (Como Funciona para Desenvolvedores): Figura 4 - Saída do Método Base da Fábrica

Conclusão

O padrão Factory em C# fornece uma estrutura para gerenciar a criação de objetos, tornando o design de software mais fácil de manter e extensível. Ao usar classes concretas para implementar uma fábrica abstrata e delegar a lógica de criação, os desenvolvedores podem criar sistemas mais fáceis de adaptar e expandir. Seja lidando com algumas poucas classes ou com um sistema com dependências complexas, o padrão Factory oferece uma abordagem estruturada para a criação precisa de objetos de classe. É particularmente vantajoso em cenários onde o tipo de objetos a serem criados pode variar de acordo com a entrada do usuário, a configuração ou o estado do aplicativo.

IronPDF oferece uma avaliação gratuita do IronPDF para começar, e as opções de licença começam em liteLicense, atendendo a desenvolvedores que buscam integrar funcionalidades de PDF em seus aplicativos .NET.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais bem estruturados e visualmente atraentes.

...
Leia mais

Artigos relacionados

Key in blue circle

Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.

Your trial license will be sent to your email address

Sem limitações. 100% desbloqueado. Sem cartão de crédito.

bullet_checkedNão é necessário cartão de crédito nem criação de conta.Sem limitações. 100% desbloqueado. Sem cartão de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Agende sua demonstração ao vivo gratuita.
Booking Badge

Aprovado por milhões de engenheiros em todo o mundo.

Logotipos dos clientes da Iron Software
Agende sua consulta sem compromisso.
Preencha o formulário abaixo ou envie um e-mail para sales@ironsoftware.com
Os seus dados serão sempre mantidos em sigilo.
Aprovado por milhões de engenheiros em todo o mundo.
Logotipos dos clientes da Iron Software
Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.
Não é necessário cartão de crédito nem criação de conta.