Patrón de fábrica en C++

Patron De Fabrica En C



Factory Pattern es una forma de crear objetos en el desarrollo de software sin tener que conocer los detalles específicos de cómo se crean. Proporciona una interfaz simplificada para crear objetos ocultando la compleja lógica de creación detrás de una clase de fábrica. Pertenece a la categoría de patrones de diseño que abordan los mecanismos de creación de objetos. Este artículo cubre los patrones de fábrica en C++.

Introducción al patrón de fábrica

Un patrón de diseño es un método para resolver problemas recurrentes en el diseño de software. El Factory Pattern es uno de los patrones de diseño que ayudan a crear objetos de forma flexible y desacoplada.

Factory Pattern es un patrón de diseño creacional en C++ que permite la creación de objetos sin conocer explícitamente la clase del objeto. Proporciona una forma de encapsular la lógica de creación de objetos complejos dentro de una clase de fábrica separada. Esto se hace definiendo una interfaz común para crear objetos, donde la clase específica del objeto se determina en tiempo de ejecución.







En lugar de crear un objeto directamente, usamos el método de fábrica para darnos una instancia del objeto que queremos. De esta manera, podemos ocultar los complicados pasos involucrados en la creación del objeto y simplificar el cambio o la modificación del objeto en el futuro.



¿Por qué usar el patrón de fábrica?

Hay varias razones por las que podríamos querer usar el patrón de fábrica. Una razón es que permite desacoplar el código de clases específicas. Al usar un método de fábrica, podemos cambiar fácilmente una clase por otra sin tener que cambiar ningún otro código y hacerlo más eficiente.



Otra razón para usar el patrón de fábrica es que puede hacer que el código sea más comprobable. Los patrones de fábrica nos permiten probar el código creando objetos simulados.





Estas son algunas de las razones por las que el patrón de fábrica se usa en C++:

  • El patrón Factory Method se usa cuando una clase no sabe de antemano qué objetos necesita crear.
  • El patrón se usa cuando una clase se basa en sus subclases para especificar los objetos que crea.
  • Es útil cuando desea encapsular la lógica para crear un objeto complejo en un solo lugar.

Ejemplo de patrón de fábrica en C++

En C++, podemos implementar el patrón de fábrica definiendo una clase base abstracta con un método de fábrica virtual. Este método debería devolver un puntero a la instancia de clase deseada. Después de eso, podemos derivar clases concretas de esta clase base y anular el método de fábrica para devolver una instancia de la clase adecuada.



Aquí hay un ejemplo de cómo podríamos usar esta implementación del patrón de fábrica:

#incluir

usando el espacio de nombres estándar ;

forma de clase {

público :

virtual vacío dibujar ( ) = 0 ;

  estático Forma * crearforma ( En t tipo ) ;

} ;

círculo de clase : forma pública {

público :

  vacío dibujar ( ) {

cout << 'Dibujar un círculo'. << final ;

  }

} ;

rectángulo de clase : forma pública {

público :

  vacío dibujar ( ) {

cout << 'Dibujar un rectángulo'. << final ;

  }

} ;

Forma * Forma :: crearforma ( En t tipo ) {

    si ( tipo == 1 ) {
        devolver nuevo círculo ( ) ;
    } demás si ( tipo == 2 ) {
        devolver nuevo rectángulo ( ) ;
    } demás {
        devolver punto nulo ;
    }
}


En t principal ( ) {

Forma * círculo = Forma :: crearforma ( 1 ) ;

círculo -> dibujar ( ) ;

Forma * rectángulo = Forma :: crearforma ( 2 ) ;

rectángulo -> dibujar ( ) ;

    devolver 0 ;

}

En este ejemplo, tenemos una clase Shape con dos clases derivadas: Circle y Rectangle. La clase Shape tiene una función virtual pura draw(), que es implementada por las clases derivadas. La clase Shape también tiene una función estática createShape(int type), que actúa como un método de fábrica para crear instancias de las clases derivadas basadas en el tipo especificado. Se llama a la función dibujar() en los objetos creados para demostrar su comportamiento específico.

  Imagen que contiene texto, fuente, captura de pantalla Descripción generada automáticamente

Conclusión

Factory Pattern es un patrón de diseño creacional en C++ que permite la creación de objetos sin conocer explícitamente la clase del objeto. Proporciona una interfaz simplificada para crear objetos ocultando la compleja lógica de creación detrás de una clase de fábrica. Esto se hace definiendo una interfaz común para crear objetos, donde la clase específica del objeto se determina en tiempo de ejecución. Lea más sobre patrones de fábrica en este artículo.