Slt, sans être un expert dans les Design Pattern, voici l'idée
générale.
Comme dans toute activité, en programmation on retombe souvent sur les
même
problème.
Les design pattern décrivent des méthodes, des solutions, des façon de
procéder, ...
Le fait de nomer les choses permèt de faciliter les échanges, les
discutions, la modélisation, ...
Par exemple, si l'on te demande d'utiliser un sinbleton pour la
connexion
à
une librairie. Il faudra que tu crée une classe ne permètant
d'instancier
qu'un seul et unique objet. En fonction du langage l'écriture de ce
code
sera plus ou moins complexe mais tu trouveras des exemples
facilement en
recherchant le mot singleton.
Le decorator est une façon de permètre de faire évoluer le comportement
d'une classe sans toucher à son code interne.
Par exemple tu crée une classe décrivant la composition d'un sandwich à
partir de pain, beurre et jambon.
Si tu veux pouvoir modifier les ingrédients tu peux le faire
directement
dans la classe, par exemple en créant une méthode qui change le pain en
Toast. Cela implique d'avoir les droits de modifier la classe et les
risques
de se greffer à un code déjà existant.
Ou, utiliser des décorateurs.
Dans ce cas la classe de base ne sera plus modifié.
Et tu pourra écrire plus facilement, ou faire écrire par d'autres
programmeurs en même temps, des classe "décoratrice" de la classe de
base
car son comportement réstera fixe et connu.
--Message d'origine-----
De : [email protected] [mailto:[email protected]]
De la
part de Jean-François Colas
Envoyé : jeudi 26 décembre 2013 15:05
À : [email protected]
Objet : [progliste] Python et decorators
Hello la ML,
J'ai un peu de mal avec cette notion, pas tellement dans son principe,
encore que, mais surtout dans la manière dont elle s'implémente en
Python. La faute aux docs dans lesquelles les indentations sont
perdues...
Qui pourrait élaborer un petit exemple, de préférence utilitaire, du
moins didactique, pour illustrer ce mécanisme?
Qu'est-ce que je crois avoir compris à ce jour?
Même s'il semble que cette notion rentre plutôt dans la programmation
objet et les fameux "design patterns", je ne reste qu'au niveau d'une
simple fonction: cette fonction pourrait être encapsulée dans une
autre,
fonction "décoratrice", pas tellement en vue de lui mettre du fard sur
les yeux ou une jolie cravate, mais pour, entre autres possibilités,
filtrer les données qui pourraient arriver à cette fonction...
Comme vous voyez, ça ne va pas bien loin. Aussi, toutes précisions qui
peuvent entrer dans un message de maililing-list seront bienvenues...
Merci,
J.-F.
Progliste :
Pour se désinscrire de la liste :
mailto:[email protected]?subject=unsubscribe
Pour voir les archives de la liste :
http://www.mail-archive.com/[email protected]/
Je vous rappelle que les pièces jointe sont activés leur taille est
limité
à
2 MO
Pour accéder aux fichiers de la liste
http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr
Ou en utilisant la nouvelle page de partage :
http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gt
Pour y ajouter des fichiers demandez-moi le ou sur la liste ou en
privé,
je
vous répondrez en privé.
Progliste :
Pour se désinscrire de la liste :
mailto:[email protected]?subject=unsubscribe
Pour voir les archives de la liste :
http://www.mail-archive.com/[email protected]/
Je vous rappelle que les pièces jointe sont activés leur taille est
limité
à 2 MO
Pour accéder aux fichiers de la liste
http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr
Ou en utilisant la nouvelle page de partage :
http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gt
Pour y ajouter des fichiers demandez-moi le ou sur la liste ou en
privé,
je vous répondrez en privé.