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é.
        
        

Répondre à