-
intérêt des interfaces
Bonjour.
Je viens de tomber par hasard sur ce topic Conception très intéressant à mon sens : pour le débutant en Architecture par Composants que je suis, l'intérêt des interfaces est en effet difficile à saisir. Cette discussion éclaire les différentes facettes du sujet.
A bientôt
JMarc
-
Je ne sais pas vraiment si c'est une question que tu poses ou un sujet ouvert, mais je vais tenter de donner quelques éléments.
A ma connaissance, il n'y a pas d'interface en python, au sens pur du terme. C'est à dire une manière de déclarer un protocole à respecter qui doit être suivi au point de la lettre par celui qui l'implémente.
En python, on retrouve plutôt la notion de "Duck typing". Cela se résume à : "Si ca vole comme un canard et que ca couine comme un canard, c'est sûrement un canard" ^^
En gros, à partir du moment ou un objet implémente certaines méthodes et/ou propriétés, il est interchangeable avec un autre objet qui implémente les mêmes méthodes/propriétés, mais sans le formalisme d'une interface java ou c#.
Cette fonctionnalité est permise par les mécanismes d'introspection de python.
Un peu plus d'info ici : http://en.wikipedia.org/wiki/Duck_typing, voir même la "petite" traduction en français de cette page http://fr.wikipedia.org/wiki/Duck_typing
Le choix du concepteur de python à toujours été de dire que le programmeur est responsable de ce qu'il fait, c'est une des raisons du typage dynamique de python et de l'absence par exemple de notion private/protected/public des classes.
-
Je comprends tout à fait le rôle des interfaces, mais comme je n'ai pas eu l'occasion d'utiliser des composants "extérieurs" ou de réutiliser les miens, je prends cela comme une méthode de travail empiriquement bonne. D'où le fait que j'utilise ces interfaces essentiellement pour documenter mon appli.
Merci pour tes liens en tous les cas !
Jmarc
-
Une autre petite chose, en fait : il n'y a pas que des interfaces pour les Content Component, et ces dernières sont peu intéressantes.
Dernière remarque : en relisant (pour la 3ème fois : ça va rentrer !) le livre de Weitershausen, j'ai tilté sur les marker interfaces qui permettent de mettre une sorte d'étiquette sur les objets créés. J'imagine que ça doit pouvoir permettre le tri, les requêtes par type, etc.
Allez, je clos le sujet : à bientôt !
JMarc