Comment savez-vous quand utiliser les modèles de conception?
N'importe qui peut lire le GoF livre pour apprendre ce que les modèles de conception sont et comment les utiliser, mais quel est le processus pour déterminer quand un pattern de conception résout un problème? Les connaissances du modèle de lecteur de la conception, ou est-il un moyen de comprendre comment un modèle peut être utilisé pour modifier un design?
En d'autres termes, les modèles pour les Modèles?
Vous devez vous connecter pour publier un commentaire.
Modèles de conception sont censés fournir une structure dans lequel problèmes peuvent être résolus. Lors de la résolution d'un problème réel, vous devez tenir compte de de nombreux 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 les modèles de conception est certainement une étape importante. Une façon de s'habituer à ce genre de chose est à l'étude applications de 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.
Je vous recommande fortement la lecture de La Tête La Première, Les Modèles De Conception de O'Reilly. C'est ce qui explique comment ces modèles peuvent être utilisés dans le monde réel.
Je voudrais aussi ajouter que de ne pas essayer de conception trop avec des motifs à l'esprit. De plus, chercher "odeurs de code" un modèle qui pourrait aider à résoudre.
Il y a un concept de base modèles sous-jacents que la plupart des gens ne connaît pas. Ne pas penser à eux comme à des structures de données, algorithmes ou.
Au lieu de cela, pensez à votre code, comme les gens de l'envoi de messages, comme notes de passage ou l'envoi de lettres, les uns aux autres. Chaque objet est une "personne".
La façon que vous feriez organiser les "people" et les modèles qu'ils utilisent pour envoyer des messages les uns aux autres sont les modèles.
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
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?"
À de plus vastes modèles 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 Proxy.
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?"
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 conception 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 forme canonique des Modèles de Conception de l' GoF livre aidera, tout comme l'apprentissage sur 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.
Expérience. Découvrez les modèles et des exemples du monde réel de leurs utilisations. Chaque fois que vous avez une conception de la décision à prendre, pense que si un modèle vous savez s'y applique. Au fil du temps, vous obtenez mieux et de vous faire découvrir de nouvelles façons d'appliquer les modèles à un large éventail de problèmes.
Un autre excellent livre que j'ai trouvé est:
Refactoring de Modèles
En montrant quand, où et comment vous pouvez modifier du code existant pour les modèles, il m'a donné une bien meilleure compréhension des concepts, et d'une capacité à identifier où ils peuvent être utilisés.
Rian van der Merwe a écrit un excellent article sur ce pour Smashing Magazine en juin 2012. Voici quelques saillants des points de balle.
Modèles de conception sont utiles pour deux raisons:
van der Merwe nous recommande de considérer la rupture des motifs lors de l':
Comment avez-vous appris quand utiliser une instruction if?
Je compare ce que parce que ses une plus grande construction que vous avez besoin de connaître les tenants et les aboutissants avant de pouvoir l'utiliser efficacement. Une instruction if permet de résoudre une classe de problèmes nécessitant la ramification. Un pont de modèle permet de résoudre une classe de problèmes. Je n'ai vraiment pas vue différemment.
Si vous connaissez les habitudes, alors ils deviennent des outils dans votre boîte à outils. Quand vous regardez une tâche, vous choisissez à partir de vos outils. À ce stade, vous devriez avoir une assez bonne idée de l'outil est la meilleure solution pour un problème donné. C'est où les formules d'arrêt de travail et vous fait faire des travaux de génie.
Je suis d'accord que viennent d'apprendre les motifs, c'est pas assez. Le problème avec la plupart des livres, c'est qu'ils ne fournissent pas d'exemples du monde réel. J'ai entendu dire que la Tête la Première, des Modèles de Conception, comme certains l'ont suggéré précédemment, en est une bonne.
Une autre chose est que la plupart des livres sont intentionnellement pas spécifique à la langue, qui peut à la fois être une bonne ou une mauvaise chose pour vous. Toutefois important est de comprendre un modèle en général, il est tout aussi important de savoir comment mettre en œuvre bien. Je suis venu à travers un livre intitulé C# 3.0 Modèles De Conception qui consacre à peu près égal à l'encre de ces deux aspects inséparables.
J'ai eu cette même question quand j'ai d'abord rencontré les modèles de conception. J'ai apprécié les concepts, mais ne sais pas quand ou comment les appliquer. Ma première approche a été d'examiner l'applicabilité au cours de la phase de conception. Une fois que vous avez un bloc diagramme et semi-clairement les responsabilités de chaque bloc, ce n'est pas trop dur à prendre des responsabilités et de la croix de référence de mer avec un bon livre de référence. Plusieurs bons ont été mentionnés ici, mais le GoF on devrait être sur votre liste. La prochaine étape est de rechercher des améliorations dans la conception basée sur ce que vous voyez dans les modèles.
Le concept d'un modèle de conception a été prise à partir de l'ingénierie structurelle, comme beaucoup de pratiques en génie logiciel. Si vous envisagez la construction d'une structure, il y a des décisions qui doivent être prises sur la façon de construire cette structure afin d'atteindre les objectifs fixés. Lors de la prise de ces décisions, vous aurez un ensemble d'exigences de travail. Il peut être quelque chose aussi simple que la passerelle doit être capable de supporter de X tonnes en une seule fois, ou avez une force de traction afin de laisser suffisamment de mouvement dans le vent ... Un architecte serait d'utiliser les connaissances antérieures des autres s'appuie pour faire ces choix de conception. Il/Elle serait très peu probable pour essayer de résoudre le problème à partir de zéro.
De Génie logiciel et des Modèles de Conception sont exactement les mêmes. Ils sont tout simplement des solutions communes à des problèmes communs. Si vous connaissez les modèles de conception, puis lorsque vous travaillez à travers un design, et en particulier de la partie d'un système, il faut quelque chose qui correspond à un motif de conception que vous avez de l'utiliser. Ne pas essayer de s'adapter à un système autour d'un modèle de conception, l'ajustement des modèles de conception à votre système (où ils se situent). Essayez de penser comme un ensemble de solutions pour réduire la quantité de travail de conception que vous devez faire, et d'être prudent et de ne pas sur-l'ingénierie de vos solutions pour la fourrer dans comme de nombreux modèles de conception que vous le pouvez. Cela va juste servir à faire de votre solution difficile à maintenir et probablement assez buggé.
Un modèle de conception est un description générique sur la façon de résoudre un problème commun. Il y a 2 choses qu'il faut faire attention à:
D'abord, c'est un description Générique; ce n'est pas la solution concrète, et ce n'est pas une recette complète soit, c'est juste une description sur la façon dont la solution pourrait ressembler dans l'ordre à l'approche d'un problème commun.
Deuxième, le problème est question est un problème commun:, cela signifie que ce problème a été rencontré plusieurs fois avant, et au fil du temps les gens ont développé une description de la façon dont une solution idéale peuvent être appliquées à cette souvent répété problème.
Donc, si vous êtes de la rencontre d'un nouveau problème qui n'est pas commun, essayez de ne pas utiliser les modèles de conception à résoudre, ou au moins ne pas faire de la conception de modèles de votre outil à juste résoudre tout type de problème que vous rencontrez.