7
votes

Quel est l'avantage du modèle d'usine?

Dupliqué possible:
Quelles sont les utilisations pratiques du modèle de méthode d'usine? de
Différences entre le modèle d'usine abstrait et la méthode d'usine

Ma compréhension actuelle de l'usine est qu'il peut créer un objet par une chaîne d'entrée, disons xxx

quel est l'avantage de ce modèle sur neuf?


2 commentaires

Comment feriez-vous cela avec neuf ?


Un autre DUP possible: Stackoverflow.com/Questtions/751804/...


4 Réponses :


1
votes

Vous pouvez réduire la dépendance (si cela importe dans votre langage).

C'est-à-dire que vous pouvez isoler vos clients de GOBS de lourde #includes , temps de compilation et dépendances.


0 commentaires

1
votes

Le tableau d'usine est utile lorsque vous avez des groupes d'objets et seuls les objets d'un groupe particulier doivent être créés. Somethnique comme: xxx

dans ce cas au lieu de tonnes de si S sur votre code, vous pouvez instancier votre usine et l'utiliser.


0 commentaires

2
votes

Il est préférable de créer une usine lorsque vous devez créer des produits complexes (c'est-à-dire «encapsuler» un processus de création de produits complexe), disposez d'un point de contrôle unique pour plusieurs produits ou de gérer la durée de vie et / ou des ressources que celles-ci. les produits consomment d'un seul point de référence. Dans certains cas, il est trop compliqué pour réécrire l'instanciation du produit et la manipulation du code avec "nouveau", de sorte que la méthode d'usine assure la réutilisation et l'uniformité tout en minimisant les erreurs de codage potentielles.

Un exemple peut être dit dans une IDE de programmation visuelle où vous utilisez une boîte à outils dans 2 projets ou plus ouverts en même temps; La boîte à outils et ses fonctions seraient probablement instanciées par un modèle d'usine car il est si complexe graphiquement et logiquement, et il nécessite une gestion minutieuse d'une ou de plusieurs de ses instances.


0 commentaires

2
votes

Une usine est utile si vous souhaitez "harmoniser" la création de différents objets (dans votre exemple de souris et hamster) via une usine partagée. Cela peut être utilisé pour (a) un constructeur spécifique abstrait pour chaque sous-classe d'une classe supérieure courante (animal par exemple dans votre exemple) ou (b) fournissant des arguments par défaut à un constructeur en fonction duquel le type d'objet (ou animal) est à créer.

Il peut être utilisé pour unifier la création d'objets partageant un paragraphe commun, par exemple. En cache: Cachefactory -> Memcache, filecache, ... Travailler avec chaque cache est similaire, mais la mise en place de différentes stratégies de mise en cache peut différer considérablement. Lorsque vous utilisez la méthode d'usine, vous pouvez basculer entre différentes stratégies de mise en cache plus facilement, au mieux en changeant une ligne d'usine de code ("Memcache", options), sans avoir à vous soucier des subtilités du backend spécifique;


0 commentaires