web-dev-qa-db-fra.com

Quand utiliser quel motif?

J'aime beaucoup les modèles de design, mais j'ai du mal à voir quand je peux en appliquer un. J'ai lu beaucoup de sites Web où les modèles de conception sont expliqués. Je comprends la plupart d’entre eux, mais j’ai du mal à reconnaître une tendance dans ma propre situation.

Donc, c'est pourquoi je pose cette question. Existe-t-il des directives/des sonneries d’alarme quand utiliser quel modèle de conception?.

Par exemple, si vous effectuez une instruction switch pour déterminer quel objet vous devez créer, vous souhaiterez probablement utiliser le modèle de conception d'usine. L'instruction switch dans ce cas est donc une "sonnerie d'alarme" pour utiliser le modèle Factory.

Alors, connaissez-vous davantage de "sonnettes d’alarme" pour déterminer un modèle de conception?

101
Martijn

Pour commencer, jetez un coup d’œil à cette page: http://codebetter.com/jeremymiller/2006/04/11/six-design-patterns-to-start-with/

Alors que Jeremy traite ici de quelques modèles, vous devez lire ces articles et les suivre avec ceci: http://codebetter.com/jeremymiller/2005/09/01/learning-about-design- motifs /

Utilisez également les références de cet article (en particulier l'interview d'Eric Gamma) et vous devriez être prêt.

37
J K

Habituellement, le processus est inversé. Ne cherchez pas dans des situations où vous utiliseriez des modèles de conception, recherchez du code pouvant être optimisé. Quand vous avez du code que vous pensez n'est pas structuré correctement. essayez de trouver un modèle qui résoudra le problème.

Les modèles de conception sont conçus pour vous aider à résoudre les problèmes structurels. Ne créez pas votre application uniquement pour pouvoir utiliser des modèles de conception.

96
Joep Killaars

Apprenez-les et, lentement, vous serez capable de les reconnaître et de savoir quand les utiliser. Commencez avec quelque chose de simple comme motif singleton :)

si vous voulez créer une instance d'un objet et une seule. Vous utilisez le motif singleton. Disons que vous créez un programme avec un objet options. Vous n'en voulez pas plusieurs, ce serait idiot. Singleton s'assure qu'il n'y en aura jamais plus d'un. Le motif Singleton est simple, très utilisé et vraiment efficace.

5
Peter Rasmussen

Je suis complètement d'accord avec Peter Rasmussen.

Les modèles de conception offrent une solution générale aux problèmes de conception courants.

Je voudrais que vous suiviez l'approche ci-dessous.

  1. Comprendre l'intention de chaque modèle
  2. Comprendre la liste de contrôle ou le cas d'utilisation de chaque modèle
  3. Pensez à la solution à votre problème et vérifiez si votre solution tombe dans la liste de contrôle d'un modèle particulier
  4. Sinon, ignorez simplement les motifs de conception et écrivez votre propre solution.

Liens utiles:

source : Explique l'intention , la structure et liste de contrôle admirablement dans plusieurs langues, y compris C++ et Java

wikipedia : Explique la structure, le diagramme UML et des exemples de travail dans plusieurs langages, y compris C # et Java.

Liste de contrôle et Règles de base = dans chaque sourcemakding design-pattern fournit la sonnerie que vous recherchez.

4
Ravindra babu