Quelle est la différence entre un motif d'usine et un motif d'usine abstrait

le différence principale entre modèle d'usine et modèle d'usine abstrait est que le modèle d'usine fournit une méthode de création d'objets sans spécifier la classe exacte utilisée pour le créer, tandis que le modèle d'usine abstrait fournit une méthode pour combiner un groupe de fabriques individuelles sans spécifier leurs classes concrètes.

Les modèles de conception sont les solutions aux problèmes généraux rencontrés par les développeurs de logiciels lors du développement de logiciels. Ils sont génériques et ne dépendent pas du type de système ou du langage de programmation. De plus, ce sont des solutions éprouvées et fournissent les meilleures pratiques. Il existe trois types de modèles de conception: création, structure et comportement. Les modèles de création fournissent une méthode pour créer des objets tout en masquant la logique de création. De plus, ils rendent le programme plus flexible. Le modèle d'usine et le modèle d'usine abstrait sont deux de ces modèles de conception.

Zones clés couvertes

1. Quel est le modèle d'usine
     - Définition, fonctionnalité
2. Quel est le motif abstrait d'usine
     - Définition, fonctionnalité
3. Quelle est la différence entre un motif d'usine et un motif d'usine abstrait
     - Comparaison des différences clés

Mots clés

Modèle d'usine abstrait, modèle d'usine

Quel est le modèle d'usine

Un modèle d'usine constitue une bonne méthode pour créer des objets. En utilisant cette méthode, le programmeur peut créer des objets sans exposer la logique de création. Il est également possible de faire référence au nouvel objet créé à l'aide d'une interface commune. Voir ci-dessous le programme.

Figure 1: Interface de forme

Figure 2: Classe Rectangle

Figure 3: classe Square

Figure 4: classe de cercle

Figure 5: classe ShapeFactory

Figure 6: classe principale

L'interface Shape a une méthode abstraite appelée draw. Rectangle, Square et Circle sont des classes. Ils implémentent l'interface Shape. Par conséquent, ces classes fournissent une implémentation pour le dessin de méthode. La méthode draw de chaque classe a sa propre implémentation. La classe ShapeFacotry a une méthode appelée getShape. Il obtient une ficelle. Cette méthode retournera un objet en fonction de la chaîne reçue.

Dans la méthode principale, il existe un objet appelé forme. Il est de type ShapeFactory. La méthode getShape est appelée à l'aide de cet objet. La chaîne "Rectangle" lui est transmise. L'objet renvoyé stocke dans shape1, qui est de type Shape. De même, les chaînes "SQUARE" et "CIRCLE" sont passées à getShape. Les objets de retour sont stockés dans shape2 et shape3. Chaque objet appelle la méthode draw et la méthode draw correspondante s’exécute en fonction de la chaîne passée..

Le programme principal utilise la classe ShapeFactory pour obtenir un objet Shape. Il passe la chaîne requise à ShapeFactory pour obtenir le type d'objet dont il a besoin..

Quel est le motif abstrait d'usine

Abstract Factory Pattern utilise une super usine et crée d’autres usines. Il est également connu comme un usine d'usines. Dans ce modèle, une interface crée une fabrique d'objets associés sans spécifier explicitement leurs classes. En d'autres termes, après avoir créé la super-usine, il peut créer d'autres usines. Voir ci-dessous le programme.

Figure 7: interface de couleur

Figure 8: classe jaune

Figure 9: Classe Orange

Figure 10: Classe pourpre

Figure 11: classe AbstractFactory

Figure 12: classe ShapeFactory

Figure 13: classe ColorFactory

Figure 14: classe FactoryProducer

Figure 15: Programme principal

Interface Shape et les classes Rectangle, Square, Circle sont identiques à la section précédente. La couleur est une interface. il a une méthode abstraite appelée remplissage. Les classes Yellow, Orange et Purple implémentent cette interface. Par conséquent, ces classes fournissent une implémentation pour la méthode de remplissage. La classe AbstrcatFactory a deux méthodes: getShape et getColor. La classe ShapeFactory étend AbstractFacotry. De même, la classe ColorFactory étend AbstractFactory. Ces classes ont les implémentations pour les méthodes getShape et getColor.

La classe FactoryProducer a une méthode appelée getFactory qui renvoie un objet de type AbstractFactory. Il retourne un objet ShapeFactory ou ColorFactory ou null selon la chaîne obtenue. Enfin, la méthode principale utilise FactoryProducer pour obtenir AbstractFactory afin d’obtenir des usines de classes concrètes..

De plus, la méthode principale utilise FactoryProducer pour obtenir un objet AbstractFactory. Il transmet des informations telles que «RECTANGLE», «SQUARE», «CIRCLE» à AbstractFactory pour obtenir le type d'objet dont il a besoin. En outre, il transmet également des informations telles que "JAUNE", "ORANGE", "VIOLET" pour obtenir le type d'objet dont il a besoin.. 

Différence entre modèle d'usine et modèle d'usine abstrait

Définition

Le modèle d'usine est un modèle de création qui utilise une méthode pour traiter le problème de la création d'objets sans avoir à spécifier la classe exacte de l'objet qui sera créé. Le modèle de fabrique abstraite, quant à lui, est un modèle de création qui permet d’encapsuler un groupe d’usines individuelles ayant un thème commun sans spécifier leurs classes concrètes. Ainsi, ces définitions expliquent la principale différence entre le modèle d'usine et le modèle d'usine abstrait.

Cacher la construction

Une autre différence entre le motif d'usine et le motif d'usine abstrait est que le motif d'usine masque la construction d'un seul objet, tandis que le motif d'usine abstrait cache la construction d'une famille d'objets apparentés..

Conclusion

Le motif Factory et le motif Abstract Factory sont deux motifs de création. Le modèle d'usine fournit une méthode de création d'objets sans spécifier la classe exacte utilisée pour le créer. En revanche, le modèle d’usine abstraite fournit une méthode permettant de combiner un groupe d’usines individuelles sans spécifier leurs classes concrètes. C'est donc la principale différence entre le motif d'usine et le motif d'usine abstrait.

Référence:

1. «Modèle de conception de méthode d'usine». Javatpoint, disponible ici.
2. “Abstract Factory Pattern.” Javatpoint, disponible ici.