Modèle d'usine en C++

Modele D Usine En C



Le modèle d'usine est un moyen de créer des objets dans le développement de logiciels sans avoir à connaître les détails spécifiques de leur création. Il fournit une interface simplifiée pour créer des objets en cachant la logique de création complexe derrière une classe de fabrique. Il appartient à la catégorie des modèles de conception qui traitent des mécanismes de création d'objets. Cet article couvre les modèles de fabrique en C++.

Introduction au modèle d'usine

Un modèle de conception est une méthode de résolution de problèmes récurrents dans la conception de logiciels. Le modèle d'usine est l'un des modèles de conception qui aide à créer des objets de manière flexible et découplée.

Le modèle d'usine est un modèle de conception de création en C++ qui permet la création d'objets sans connaître explicitement la classe de l'objet. Il fournit un moyen d'encapsuler une logique de création d'objet complexe dans une classe de fabrique distincte. Cela se fait en définissant une interface commune pour créer des objets, où la classe spécifique de l'objet est déterminée au moment de l'exécution.







Au lieu de créer un objet directement, nous utilisons la méthode factory pour nous donner une instance de l'objet que nous voulons. De cette façon, nous pouvons masquer les étapes compliquées impliquées dans la création de l'objet et simplifier le changement ou la modification de l'objet à l'avenir.



Pourquoi utiliser le modèle d'usine ?

Il y a plusieurs raisons pour lesquelles nous pourrions vouloir utiliser le modèle d'usine. L'une des raisons est qu'il permet de découpler le code de classes spécifiques. En utilisant une méthode d'usine, nous pouvons facilement passer d'une classe à une autre sans avoir à modifier un autre code et le rendre plus efficace.



Une autre raison d'utiliser le modèle d'usine est qu'il peut rendre le code plus testable. Les modèles d'usine nous permettent de tester le code en créant des objets fictifs.





Voici quelques-unes des autres raisons pour lesquelles le modèle d'usine est utilisé en C++ :

  • Le modèle Factory Method est utilisé lorsqu'une classe ne sait pas à l'avance quels objets elle doit créer.
  • Le modèle est utilisé lorsqu'une classe s'appuie sur ses sous-classes pour spécifier les objets qu'elle crée.
  • Il est utile lorsque vous souhaitez encapsuler la logique de création d'un objet complexe en un seul endroit.

Exemple de modèle d'usine en C++

En C++, nous pouvons implémenter le modèle de fabrique en définissant une classe de base abstraite avec une méthode de fabrique virtuelle. Cette méthode doit renvoyer un pointeur vers l'instance de classe souhaitée. Après cela, nous pouvons dériver des classes concrètes de cette classe de base et remplacer la méthode de fabrique pour renvoyer une instance de la classe appropriée.



Voici un exemple de la façon dont nous pourrions utiliser cette implémentation du modèle d'usine :

#include

en utilisant l'espace de noms std ;

forme de classe {

public :

virtuel annuler dessiner ( ) = 0 ;

statique Forme * créerForme ( entier taper ) ;

} ;

cercle de classe : Forme publique {

public :

annuler dessiner ( ) {

écoute << 'Tracer un cercle.' << fin ;

}

} ;

classe Rectangle : Forme publique {

public :

annuler dessiner ( ) {

écoute << 'Dessiner un rectangle.' << fin ;

}

} ;

Forme * Forme :: créerForme ( entier taper ) {

si ( taper == 1 ) {
retour nouveau cercle ( ) ;
} autre si ( taper == 2 ) {
retour nouveau rectangle ( ) ;
} autre {
retour nullptr ;
}
}


entier principal ( ) {

Forme * cercle = Forme :: créerForme ( 1 ) ;

cercle -> dessiner ( ) ;

Forme * rectangle = Forme :: créerForme ( 2 ) ;

rectangle -> dessiner ( ) ;

retour 0 ;

}

Dans cet exemple, nous avons une classe Shape avec deux classes dérivées : Circle et Rectangle. La classe Shape a une pure fonction virtuelle draw(), qui est implémentée par les classes dérivées. La classe Shape a également une fonction statique createShape(int type), qui agit comme une méthode de fabrique pour créer des instances des classes dérivées en fonction du type spécifié. La fonction draw() est appelée sur les objets créés pour démontrer leur comportement spécifique.

  Une image contenant texte, police, capture d'écran Description générée automatiquement

Conclusion

Le modèle d'usine est un modèle de conception de création en C++ qui permet la création d'objets sans connaître explicitement la classe de l'objet. Il fournit une interface simplifiée pour créer des objets en cachant la logique de création complexe derrière une classe de fabrique. Cela se fait en définissant une interface commune pour créer des objets, où la classe spécifique de l'objet est déterminée au moment de l'exécution. En savoir plus sur les modèles d'usine dans cet article.