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.
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
Modèle d'usine abstrait, 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..
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..
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.
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..
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.
1. «Modèle de conception de méthode d'usine». Javatpoint, disponible ici.
2. “Abstract Factory Pattern.” Javatpoint, disponible ici.