À quels types de problèmes puis-je faire face si je n'utilise pas de modèles de conception logicielle? Pouvez-vous me parler des problèmes d'approche de la conception en utilisant des techniques orientées objet standard?
design-patterns
iStudent
la source
la source
Réponses:
Vous manquez le point.
Les modèles de conception existent intrinsèquement lors de la conception de logiciels, tout comme les modèles structurels existent dans le monde. Même si vous ne connaissez pas le nom des choses, vous finirez par constater que certaines structures physiques sont bien adaptées à certains problèmes. Vous constaterez qu'une forme triangulaire de barres de bois / métal / etc. est une structure très stable, mais uniquement sur un plan. Vous constaterez que les briques carrées présentent certains avantages par rapport aux rondes ...
De même, certaines structures logicielles sont en quelque sorte uniques ou optimales. Vous finirez par les trouver et les utiliser peu importe si vous connaissez leurs noms . C'est le cœur de ce que sont les modèles de conception - ce sont des noms pour ces structures que les programmeurs expérimentés connaissent et utilisent de toute façon. Il donne aux programmeurs la possibilité de communiquer de manière beaucoup plus uniforme et succincte. Il permet également aux programmeurs de réfléchir plus consciemment au concept de modèles.
Donc, les deux points clés que j'essaie de faire:
la source
Ceux qui ne se souviennent pas du passé sont condamnés à le répéter.
Vous ne rencontrerez aucun problème spécifique autre que ceux soulevés par votre conception. Et avec le temps, vous finirez par utiliser les modèles sans en être conscient, vous venez de passer du temps à les découvrir par vous-même. Connaître les motifs au préalable les rend plus faciles à repérer dans la conception et présente l'avantage majeur qu'ils sont prouvés par un certain nombre de personnes.
Tout ce qui est développé aujourd'hui est basé en grande partie sur des connaissances antérieures, cela n'aurait aucun sens de l'ignorer. Imaginez construire un gratte-ciel aujourd'hui sans connaître les problèmes rencontrés par les gens qui ont construit des cathédrales il y a quelques centaines d'années.
la source
Vous aurez le problème de ne pas pouvoir écrire de logiciel.
Les variables sont un modèle de conception.
Les méthodes sont un modèle de conception.
Les opérateurs - addition, soustraction, etc. - sont un modèle de conception.
Les déclarations sont un modèle de conception.
Les valeurs sont un modèle de conception.
Les références sont un modèle de conception.
Les expressions sont un modèle de conception.
Les classes sont un modèle de conception.
...
Tout ce que vous faites dans la programmation à tout moment est un modèle de conception . La plupart du temps, le motif est tellement ancré dans votre pensée que vous avez cessé de le considérer comme "un motif de conception". Les choses que vous devez apprendre comme "le motif singleton" et ainsi de suite sont simplement des motifs qui n'ont pas (encore) été cuits dans la langue que vous utilisez.
Non, je n'ai aucune idée de ce que signifie cette question. Les modèles de conception sont des "techniques standard orientées objet" - c'est ce qui en fait des modèles de conception . Un modèle de conception est une technique standard pour résoudre un problème particulier, en particulier (mais pas nécessairement ) dans un langage orienté objet.
la source
The things that you have to learn like "the singleton pattern" and so on are simply patterns that haven't (yet) been baked into whatever language you're using.
- C'est (presque) la définition d'un modèle de conception - une construction de code flexible / facilement réutilisable utilisée pour surmonter une limitation dans le langage lui-même, qui est facile à communiquer aux autres. Une fois qu'il fait partie du langage, ce n'est plus un modèle de conception.Comprendre le point d'un modèle de conception est plus important que de l'utiliser à la lettre. Certains modèles sont, à mon avis, idiots, du moins dans les paradigmes linguistiques auxquels je suis habitué. IMO, un programmeur qui utilise simplement les modèles de conception à l'aveuglette et sans vraiment les comprendre est un pire programmeur que celui qui voudrait réfléchir aux choses elles-mêmes. Mais quelqu'un qui se familiarise avec les idées et décide ensuite par lui-même si elles en valent la peine est probablement un programmeur beaucoup plus puissant que les deux.
Cela dit, je n'ai aucune idée! @ # $ Ing de l'intérêt du poids mouche et je n'ai pas honte de l'admettre. (voir les commentaires pour une autre entrée wikipedia qui a beaucoup aidé)
Je recommande l'entrée de wikipedia sur les modèles de conception. C'est très concis et clairement écrit. Très utile pour avoir une idée des raisons pour lesquelles on pourrait s'embêter avec un modèle de conception donné ou non. Personnellement, j'ai tendance à trouver les plus simples et les plus utiles et je n'hésiterais pas à modifier une implémentation donnée d'un modèle pour répondre à mes besoins.
Ce sont des idées, pas des plans. Dans certaines langues, ce ne sont pas du tout de bonnes idées. Dans d'autres, ils sont à juste titre considérés comme des compliments pour surmonter les faiblesses de conception d'un langage qui pourraient être mieux compensées par une complexité moindre. Quoi qu'il en soit, cela ne fait pas de mal de les examiner et d'essayer de comprendre les défis qu'ils sont censés surmonter avant de décider de vos propres solutions préférées.
À quels types de problèmes allez-vous faire face? Vous risquez de manquer des opportunités et de consacrer plus de temps aux problèmes que vous n'en aviez besoin, sauf si vous êtes un génie de la programmation qui a déjà tout compris. Il est important de garder un œil critique sur les idées de programmation populaires, mais cela ne fait jamais de mal de comprendre ce que les gens pensent qu'ils résolvent, car cela donnera plus de clarté à vos propres solutions / approches préférées.
la source
Le principal problème auquel vous serez confronté est que vous réinventerez la roue . Ils sont appelés modèles car ils apparaissent souvent et de manière prévisible.
la source
Même si vous suivez les modèles de conception, vous pourriez vous retrouver avec une mauvaise conception. Les modèles de conception sont naturels et vous finirez par en utiliser une saveur dans votre conception. Vous devrez vous efforcer de ne pas utiliser de motifs. Il n'y a aucune raison de condamner les modèles de conception, ce qui est plus important est de choisir les bons modèles pour vos besoins
la source
Vous utilisez des motifs de conception tout le temps sans vous en rendre compte. Un grand nombre de bibliothèques standard dans les langues populaires sont conçues avec des modèles de conception à l'esprit. Un exemple est la
FileReader
bibliothèque de Java qui est conçue en utilisant le modèle de conception du décorateur . Parlant maintenant de votre propre code, vous n'êtes pas obligé d'utiliser des modèles de conception (dans la plupart des cas). Un modèle de conception est une «solution réutilisable à un problème courant» , ce qui signifie qu'il vous aidera à écrire du code plus propre et plus facile à gérer, c'est donc à vous de décider à quel point vous voulez éviter de vous retrouver avec du code spaghetti.la source