7
votes

Comment les usines et les modèles se rapportent-ils?

Je lisais simplement un fil sur de sorte que cela discutait des mérites des classes statiques de Singleton et statiques.

Certaines personnes ont mentionné que le motif x semblait être plus d'une "usine" plutôt que d'un "modèle" singleton.

Quelles sont les différences entre une «usine» et un «modèle de conception»?


0 commentaires

9 Réponses :


1
votes

Les usines et les singletons sont quelques-uns des nombreux modèles de conception.

Un modèle d'usine peut être implémenté comme motif singleton produisant des objets. Une usine pourrait également être une classe instanciée et donc pas un singleton. De même, un singleton peut être une usine, mais elle peut également être autre chose, comme un gestionnaire de paramètres global ou un registre d'événement.


0 commentaires

9
votes

une "usine" est un modèle de conception spécifique: http://fr.wikipedia.org/wiki/Factory_method_pattern

De même "singleton" est également un modèle de conception: http://fr.wikipedia.org/wiki/singleton_pattern


0 commentaires

0
votes

A usine est un modèle de conception - pas l'autre chemin autour.


0 commentaires

0
votes

Vous l'avez eu un peu mal. "Usine" est un motif aussi et contraste ici avec "singleton".


0 commentaires

0
votes

'usine' est un type de motif de conception. Vous pouvez voir quelques exemples de l'usine abstraite ici ou la méthode d'usine ici basé sur le contexte


0 commentaires

0
votes

usine est un modèle de conception :-) Tout comme Singleton. On pourrait soutenir que Singleton est une sorte d'usine. Il crée un objet en cas de besoin et utilise une stratégie de chaching définie (qui renvoie toujours le même objet une fois que cela a été créé) mais c'est achetémique et serait généralement confusant dans la plupart des débats sur la structure


0 commentaires

0
votes

Une usine est un type de motif de conception. Fondamentalement, une usine rend une classe dépendante des besoins de la classe d'appel. Toutes les classes retournées par l'usine doivent partager la même interface afin que vous puissiez invoquer les mêmes méthodes publiques sur eux (bien que chaque classe implémente la méthode peut être différente).

Voici un bon lien http://fr.wikipedia.org/wiki/factory_method_pattern


0 commentaires

1
votes

une "usine" plutôt qu'un singleton 'motif'

Permettez-moi de chair et de placer correctement les guillemets:

un "modèle d'usine" plutôt qu'un "singleton modèle"

Les deux sont les deux modèle de conception .


0 commentaires

0
votes

Beaucoup de réponses, mais aucun ne semble différencier bien les deux modèles. Laissez-moi essayer de voir si je ne peux pas confondre plus de problème.

Un singleton est un modèle qui limite votre système à la création d'une seule instance d'une classe donnée. La restriction est généralement mise en œuvre en créant une usine qui créera une instance de la classe (si aucune n'existe déjà) ou de renvoyer l'instance déjà créée lors d'appels ultérieurs.

Une usine est utilisée pour créer des singletons et dans d'autres situations. Il peut être utilisé pour remplacer «Nouveau» dans de nombreux cas. Un avantage est que vous pouvez écrire votre usine pour permettre que le type d'objet soit renvoyé pour être "SET". De cette façon, votre framework de test peut "définir" un objet moqueur au lieu de la réelle - et le reste de votre système utilisera ensuite l'objet simulé.

Un autre cas peut être d'évaluer l'usine à partir des paramètres de type à retourner, ou à partir de données (peut-être XML). Ils sont également utilisés pour mettre en œuvre une injection de dépendance dans laquelle l'usine examine ce dont vous avez besoin et construit des chaînes d'objets pour répondre à ces besoins.


0 commentaires