Quand utiliser quel modèle de conception?

J’aime beaucoup les motifs de conception, mais je trouve difficile de 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 je trouve difficile de reconnaître un modèle dans mes propres situations.

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

Par exemple, si vous effectuez une instruction switch pour déterminer quel object vous devez créer, vous souhaiterez probablement utiliser le modèle de conception d’usine. Dans ce cas, la déclaration de commutation est une «sonnerie d’alarme» pour utiliser le motif Factory.

Alors, connaissez-vous plus de «cloches d’alarme» pour déterminer un modèle de conception?

Pour commencer, jetez un coup d’oeil à 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 ensuite: http://codebetter.com/jeremymiller/2005/09/01/learning-about-design-patterns/

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

Habituellement, le processus est inverse. Ne cherchez pas de situations où utiliser des modèles de conception, recherchez le code qui peut être optimisé. Lorsque vous avez du code que vous pensez ne pas être structuré correctement. essayez de trouver un modèle de conception qui résoudra le problème.

Les modèles de conception sont destinés à vous aider à résoudre des problèmes structurels, ne partez pas à la conception de votre application uniquement pour pouvoir utiliser des modèles de conception.

Apprenez-les et, lentement, vous serez en mesure de les reconstituer et de déterminer quand les utiliser. Commencez avec quelque chose de simple comme le modèle singleton 🙂

si vous voulez créer une instance d’un object et juste UN. Vous utilisez le modèle singleton. Disons que vous créez un programme avec un object options. Vous ne voulez pas plusieurs d’entre eux, ce serait idiot. Singleton s’assure qu’il n’y en aura jamais plus d’un. Singleton Pattern est simple, beaucoup utilisé et vraiment efficace.

Je suis complètement d’accord avec @ Peter Rasmussen.

Les modèles de conception fournissent 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 schémas de conception et écrivez votre propre solution.

Liens utiles:

sourcemaking : Explique magnifiquement l’ intention , la structure et la liste de contrôle en plusieurs langues, y compris C ++ et Java

wikipedia : Explique la structure, le diagramme UML et les exemples de travail en plusieurs langues, y compris C # et Java.

La liste de contrôle et les règles de base dans chaque motif de conception de sourcemakding fournissent la cloche d’alram que vous recherchez.

Bien qu’un ancien thread, si vous cherchez quelque chose dans .NET, utilisez cet article extrêmement utile. Patterns de conception .NET en C # qui montre comment les utiliser dans le monde réel. HTH!

Les motifs les plus utilisés se trouvent dans 23 bandes de quatre. Vous pouvez le voir ici . Il explique comment et quand les utiliser.