66 votes

Comment savoir quand utiliser les modèles de conception?

Tout le monde peut lire le livre GoF pour savoir quels sont les modèles de conception et comment les utiliser, mais quel est le processus à suivre pour déterminer quand un modèle de conception résout un problème? Est-ce que la connaissance du motif détermine le dessin ou existe-t-il un moyen de déterminer comment un motif peut être utilisé pour modifier un dessin?

En d'autres termes, existe-t-il des modèles pour les modèles?

45voto

BigJump Points 3236

Je recommande fortement de lire Head First Design Patterns de O'Reilly. Cela explique comment ces modèles peuvent être utilisés dans le monde réel.

Head First Design Patterns

J'ajouterais aussi que n'essayez pas trop de concevoir avec des motifs en tête. De plus, recherchez les "odeurs de code" qu'un motif pourrait aider à résoudre.

45voto

EfForEffort Points 54278

Les Design patterns sont censés fournir une structure dans laquelle les problèmes peuvent être résolus. Lors de la résolution d'un problème réel, vous devez tenir compte de beaucoup de petites variations d'une solution à ce problème pour voir si tout correspond à un modèle de conception. En particulier, vous aurez probablement besoin de généraliser votre problème, ou une solution, afin de faire un modèle de conception adaptée.

La réponse est que c'est tout un art. Sachant que les modèles de conception est certainement une étape importante. Une façon de s'habituer à ce genre de chose est d'étudier les applications des modèles de conception, non seulement les modèles. Voir de nombreuses applications différentes d'un modèle peut vous aider au fil du temps pour apprendre à mieux le mappage d'une tâche sur un modèle.

13voto

kyoryu Points 8281

Il existe un concept fondamental sous-jacent aux modèles que la plupart des gens ne parlent pas. Ne les considérez pas comme des structures de données ou des algorithmes.

Pensez plutôt à votre code comme à des personnes qui envoient des messages, comme des notes ou des lettres, les unes aux autres. Chaque objet est une "personne".

La manière dont vous organisez les «personnes» et les modèles qu’ils utilisent pour s’envoyer des messages sont les modèles.

12voto

Charlie Martin Points 62306

Tour de poser la question: le modèle mtch vous devriez faire est "ce modèle convient parfaitement à mon problème". Considérez vraiment un modèle simple, la recherche d'un élément dans un tableau. en C, c'est quelque chose comme

TYPE_t ary[SIZE] = // ... gets initialized somehow
size_t ix ;        // Your index variable

for(ix=0; ix < SIZE; ix++){
    if (ary[ix] == item) {
       return ix ;
    }
}

Vous n'avez pas regarder le code et pense que "où puis-je l'utiliser", vous regardez le problème et dire "puis-je savoir comment faire pour trouver un élément dans un tableau?"

Avec la plus vaste des dessins est vraiment fonctionne de la même manière. Vous avez besoin d'avoir de nombreuses de nombreuses copies d'une structure de données qui ne change pas souvent --- qui vous fait penser "poids Mouche." Vous voulez quelque chose qui vit sur les deux côtés d'une frontière réseau, vous pensez à la Procuration.

Après l'étude de modèles, en particulier le GoF, demandez-vous "quelles sont les situations appel pour ce motif? Je l'ai vu ce modèle avant? Que pourrais-je avoir utilisé ce pour dans un travail antérieur? Où puis-je trouver un exemple de cela dans ma propre vie?"

7voto

Wedge Points 11910

Les Modèles De Conception? Vous êtes à la tremper dans de!

Il n'y a rien de spécial à propos des modèles de conception, ils ne sont que des modèles de conception. Toutes les utilisations de développement des modèles de conception. Il y a un certain ensemble de modèles de conception dans la programmation orientée objet, qui sont généralement considéré comme souhaitable et sont devenus canoniques des Modèles de Conception. Mais il y a aussi de nombreux indésirable ou contraire indifférent modèles de conception (comme la conception d'anti-modèles) ainsi que de découvrir et/ou sans papiers à motifs.

Vous ne pouvez pas éviter d'utiliser des motifs lors de la programmation. Mais vous pouvez devenir plus conscient des modèles que vous utilisez et si certaines habitudes sont utiles et quand ils ne le sont pas. L'étude de la canonique Design Patterns du GoF livre aidera, tout comme l'apprentissage sur les odeurs de code et de refactoring. Il n'y a pas une seule bonne réponse pour quand un design particulier ou motif de conception doit être utilisé, vous devez acquérir de l'expérience dans l'utilisation et la mise en œuvre afin de savoir quand et où utiliser de modèle.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X