IRONSOFTWAREHOME
ACTUALIZACIONES PARA DESARROLLADORES

Patrón de Fábrica C# (Cómo Funciona para Desarrolladores)

Jacob Mellor, Director de Tecnología @ Team Iron
Jacob Mellor
Updated: 23 de abril de 2026

El patrón de fábrica en C# es un enfoque estructural que pertenece a la categoría de patrones de diseño. El Patrón de Diseño del Método de Fábrica en C# está destinado a resolver problemas relacionados con la creación de objetos sin especificar la clase creadora exacta del objeto que se va a crear.

Esencialmente, el patrón de fábrica se ocupa de la creación de objetos delegándola a una clase específica, conocida como la clase fábrica. Esto permite que un sistema sea más flexible y fácil de gestionar, especialmente al introducir nuevos tipos de objetos, ya que la clase fábrica maneja el proceso de creación de objetos, reduciendo la dependencia de las clases concretas. Entremos en cómo se puede implementar y utilizar el Patrón del Método de Fábrica, un patrón de diseño creacional en C#. Exploraremos la Biblioteca de Generación de PDFs IronPDF más adelante.

Estructura básica del patrón de método de fábrica

La idea principal detrás del patrón del método de fábrica es definir una interfaz común para crear objetos mientras se permite a las subclases cambiar el tipo de objetos que crean. Este patrón involucra algunos componentes clave:

  • Interfaz de producto: especifica la estructura de los objetos creados por el método de fábrica.
  • Clases de productos concretos: Implementa la interfaz del producto.
  • Clase Creador (Clase abstracta Creator): Declara el método de fábrica, que devuelve un objeto de la interfaz del producto.
  • Creador de hormigón: modifica el método de fábrica para entregar una instancia del producto de hormigón.

Ejemplo: Fábrica de vehículos

Consideremos un escenario donde tenemos diferentes tipos de vehículos como coches y camiones. Usaremos el patrón de fábrica para crear una fábrica de vehículos que pueda crear diferentes tipos de vehículos basados en la entrada del usuario o un archivo de configuración.

Paso 1: Definir la interfaz del producto

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

Paso 2: Implementar productos 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.");
    }
}

Paso 3: Crear la clase creadora abstracta

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

Paso 4: Implementar el Creador de Hormigón

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");
        }
    }
}

Paso 5: Uso del código 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();
    }
}

En el ejemplo anterior, la clase VehicleFactory sirve como la creadora abstracta, con la clase ConcreteVehicleFactory siendo la creadora concreta que implementa el método de fábrica CreateVehicle. Este método decide qué tipo de vehículo crear según la entrada que recibe. El código del cliente luego usa la fábrica para crear instancias de diferentes vehículos, promoviendo un acoplamiento flexible entre la lógica de creación de objetos y el código del cliente.

Patrón de fábrica en C# (Cómo funciona para desarrolladores): Figura 1 - Salida del patrón de diseño de fábrica

Ventajas del uso del patrón de fábrica

El patrón de fábrica ofrece varias ventajas, especialmente en sistemas complejos:

  • Acoplamiento flexible: el código del cliente interactúa con interfaces o clases abstractas en lugar de clases de productos concretas. Esto resulta en un diseño que es más flexible y fácil de modificar.
  • Software orientado a objetos reutilizable: el patrón de fábrica promueve la reutilización del código ya que separa la lógica de creación de objetos del sistema, lo que hace que el sistema sea más fácil de mantener y ampliar. Flexibilidad en la creación de objetos: El método de fábrica permite diferentes implementaciones para la creación de objetos, que pueden seleccionarse en tiempo de ejecución. Esto resulta especialmente útil en escenarios donde el tipo de objeto requerido puede variar según factores externos.

IronPDF: solución .NET para PDF

Patrón de fábrica en C# (Cómo funciona para desarrolladores): Figura 2 - IronPDF

IronPDF es una biblioteca diseñada para la plataforma .NET, que ayuda a los desarrolladores a crear, editar y manipular fácilmente archivos PDF directamente desde HTML, CSS, imágenes y JavaScript, sin profundizar en complejas APIs de generación de PDFs. Su principal atracción radica en su capacidad para transformar contenido web en documentos PDF rápidamente y con alta precisión, gracias a su uso de un motor de renderizado basado en Chrome.

Las características clave incluyen generar PDFs desde cadenas HTML o URLs, renderizar páginas web como PDFs al instante y la capacidad de trabajar con aplicaciones de formularios, aplicaciones servidoras e intranets seguras, entre otras. Su rendimiento está optimizado para la eficiencia, con capacidades para operaciones asíncronas, registro de logs personalizado, y documentación extensa para ayudarle a comenzar rápidamente.

IronPDF se destaca en la conversión de HTML a PDF, asegurando la preservación precisa de los diseños y estilos originales. Es perfecto para crear PDFs a partir de contenido basado en la web como informes, facturas y documentación. Con soporte para archivos HTML, URLs y cadenas HTML en bruto, IronPDF produce fácilmente documentos PDF de alta calidad.

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");
    }
}

Ejemplo de código

Para ilustrar cómo IronPDF puede integrarse con el Patrón de Fábrica, vamos a crear un ejemplo simplificado. El Patrón de Fábrica es un tipo de patrón de diseño creacional que ofrece una manera de crear productos o objetos concretos dentro de una superclase, permitiendo a las subclases modificar los objetos específicos que se están produciendo. Esto encaja bien con la creación de diferentes tipos de documentos PDF basados en necesidades específicas, como desde cadenas HTML, URLs o archivos.

Crearemos una interfaz llamada IPdfCreator que define un método para crear PDFs, y luego implementaremos diferentes clases de fábrica que crean PDFs de diversas maneras usando IronPDF.

Paso 1: Definir la interfaz IPdfCreator

Esta interfaz declara el método CreatePdf que todas las fábricas concretas implementarán.

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

Paso 2: Implementar fábricas de hormigón

Aquí definimos dos implementaciones concretas de IPdfCreator: una para crear PDF a partir de cadenas HTML y otra a partir de URL.

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");
    }
}

Paso 3: Uso de la fábrica

En su aplicación, ahora puede usar estas fábricas para crear documentos PDF desde diferentes fuentes sin preocuparse por los detalles del proceso de creación de PDFs.

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");
    }
}

En esta configuración, HtmlStringPdfCreator y UrlPdfCreator son fábricas concretas que producen PDFs. La clase Program, que actúa como cliente, usa estas fábricas sin necesidad de conocer los detalles intrincados de cómo se generan PDFs desde cadenas HTML o URLs. Este enfoque proporciona flexibilidad, ya que puede introducir nuevas maneras de crear PDFs (por ejemplo, desde archivos o flujos) simplemente agregando más fábricas que implementen la interfaz IPdfCreator, siguiendo el Principio de Abierto/Cerrado del diseño orientado a objetos.

Resultado

Las siguientes capturas de pantalla son la salida del código:

Patrón de fábrica en C# (Cómo funciona para desarrolladores): Figura 3 - Salida en PDF del patrón de diseño de fábrica

Patrón de fábrica en C# (Cómo funciona para desarrolladores): Figura 4 - Salida del método base de fábrica

Conclusión

El patrón de fábrica en C# proporciona un marco para gestionar la creación de objetos, haciendo que el diseño del software sea más mantenible y extensible. Al usar clases concretas para implementar una fábrica abstracta y delegar la lógica de creación, los desarrolladores pueden crear sistemas que sean más fáciles de adaptar y expandir. Ya sea gestionando unas pocas clases o un sistema con dependencias complejas, el patrón de fábrica ofrece un enfoque estructurado para la creación de objetos de clase específica. Es particularmente beneficioso en escenarios donde el tipo de objetos a crear puede variar según la entrada del usuario, la configuración o el estado de la aplicación.

IronPDF ofrece una prueba gratuita de IronPDF para comenzar, y las opciones de licencia comienzan en liteLicense, atendiendo a desarrolladores que buscan integrar funcionalidades PDF en sus aplicaciones .NET.

Jacob Mellor, Director de Tecnología @ Team Iron
Director de Tecnología

Jacob Mellor es Director de Tecnología de Iron Software y un ingeniero visionario pionero en la tecnología C# PDF. Como desarrollador original de la base de código principal de Iron Software, ha dado forma a la arquitectura de productos de la empresa desde su creación, transformándola, junto con el director ejecutivo Cameron Rimington, en una empresa de más de 50 personas que presta servicios a la NASA, Tesla y organismos gubernamentales de todo el mundo.

...
Leer más

Artículos Relacionados

Key in blue circle

Obtenga su clave de prueba gratuita de 30 días al instante.

Your trial license will be sent to your email address

Sin limitaciones. 100 % desbloqueado. Sin tarjeta de crédito.

OR
bullet_checkedNo se requiere tarjeta de crédito ni creación de cuentaSin limitaciones. 100 % desbloqueado. Sin tarjeta de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
Reserve su Demostración en Vivo gratuita
Booking Badge

Confiado por millones de ingenieros en todo el mundo

Logos de clientes de Iron Software
Obtén tu Consulta Sin Compromiso
Completa el formulario a continuación o envía un correo a sales@ironsoftware.com
Tus detalles siempre serán mantenidos confidenciales.
Confiado por millones de ingenieros en todo el mundo
Logos de clientes de Iron Software
Obtenga su Clave de Prueba de 30 días gratis al instante.
No se requiere tarjeta de crédito ni creación de cuenta
Biblioteca C# NuGet para PDF
Instalar con NuGet

Versión: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. En el Explorador de Soluciones, haga clic derecho en Referencias, Administrar Paquetes NuGet
  2. Seleccione Examinar y busque "IronPDF"
  3. Seleccione el paquete e instale
C# PDF DLL
Descargar DLL

Versión: 2026.9

o descargue el Instalador de Windows aquí.

  1. Descargue y descomprima IronPDF en una ubicación como ~/Libs dentro del directorio de su solución
  2. En el Explorador de Soluciones de Visual Studio, haga clic derecho en Referencias. Seleccione Examinar, "IronPDF.dll"

Licencias desde $999