Interface (ou une classe abstraite avec toutes les méthodes abstraites) est une arme puissante dans un langage statique comme C#, JAVA. Il permet d'utiliser différents types dérivés d'une manière uniforme. Les modèles de conception nous encouragent à utiliser l'interface autant que possible. Toutefois, dans un langage de type dynamique, tous les objets ne sont pas vérifiés pour leur type lors de la compilation. Ils n'ont pas à implémenter une interface à utiliser d'une manière spécifique. Vous avez juste besoin de vous assurer qu'ils ont des méthodes (attributs) définies. Cela rend l'interface non nécessaire, ou du moins pas aussi utile que dans un langage statique.Interface dans une langue dynamique?
Un langage dynamique typique (par exemple, ruby) a-t-il une interface? Si c'est le cas, alors quels sont les avantages de l'avoir? Si ce n'est pas le cas, perdons-nous beaucoup de beaux modèles de design qui nécessitent une interface?
Merci.
J'aime le deuxième point! :) – Shuo
Si une classe fournit des implémentations par défaut, ce n'est pas une interface car les interfaces diffèrent des classes abstraites en ce sens qu'elles ne peuvent contenir aucune implémentation. – sepp2k
@ sepp2k, je suis d'accord. Ce n'est pas ce que j'appelle l'interface. – Shuo