Je lisais simplement un fil sur de sorte que cela discutait des mérites des classes statiques de Singleton et statiques. p>
Certaines personnes ont mentionné que le motif x em> semblait être plus d'une "usine" plutôt que d'un "modèle" singleton. p>
Quelles sont les différences entre une «usine» et un «modèle de conception»? p>
9 Réponses :
Les usines et les singletons sont quelques-uns des nombreux modèles de conception. P>
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. P>
une "usine" est un modèle de conception spécifique: http://fr.wikipedia.org/wiki/Factory_method_pattern p>
De même "singleton" est également un modèle de conception: http://fr.wikipedia.org/wiki/singleton_pattern P>
Vous l'avez eu un peu mal. "Usine" est un motif aussi et contraste ici avec "singleton". P>
usine est em> 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 P>
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). P>
Voici un bon lien http://fr.wikipedia.org/wiki/factory_method_pattern p>
une "usine" plutôt qu'un singleton 'motif' p> blockQuote>
Permettez-moi de chair et de placer correctement les guillemets: P>
un "modèle d'usine" plutôt qu'un "singleton modèle" em> p>
Les deux sont les deux modèle de conception . P>
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. P>
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. P>
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é. P>
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. P>