|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre habitué
![]() Étudiant Inscription : mai 2011 Messages : 226 ![]() |
Bonjour,
Existe-t-il en javascript un équivalent des interfaces en Java? En fait, j'ai besoin d'un moyen de vérifier qu'un objet donné vérifie une API. Comment, je peux faire ça? Merci ! |
|
|
00
|
|
|
#2 |
![]() ![]() Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur Inscription : mars 2002 Messages : 30 019 ![]() |
firebug sous firefox ?
__________________
Ma page Developpez Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts) Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir... Votre post est résolu ? Alors n'oubliez pas le Tag ![]() ![]() réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr |
|
|
00
|
|
|
#3 |
|
Membre habitué
![]() Étudiant Inscription : mai 2011 Messages : 226 ![]() |
Lol, non, je parlais en termes de programation. L'équivalent de
En Java, un objet implémentant une interface est sûr de respecter l'API de l'interface, càd qu'il possède bien toutes les méthodes décrites dans l'interface. Existe-t-il un équivalent en Javascript? |
|
|
00
|
|
|
#4 |
|
Expert Confirmé
![]() ![]() Urbaniste Inscription : juillet 2004 Messages : 1 421 ![]() |
Javascript est un langage à base de prototype.
un objet ne se conforme donc pas à quoi que se soit. un objet est construit totalement dynamiquement. on peut lui ajouter ou lui supprimer des méthodes, ou membres à n'importe quel moment. donc se conformer à une interface n'a absolument aucun sens. imagine en java que tu définisse un interface avec la méthode boolean test(); tu fais une classe A qui implémentent cette interface. puis dans un code tu instancie un objet le la classe A. l'objet en question possède la méthode test(). maintenant un code s'applique à l'objet et lui supprime la méthode test() A est une classe implémentant test() mais ton objet de cette classe n'a pas cette méthode. en javascript tu n'a pas de classe tu ajoute ou supprime les méthodes dynamiquement. Tu peux tester si un objet possède un membre particulier ou une méthode particulière. mais ton objet n'appartient à aucune classe. la notion d'interface est un artifice ajouté dans la théorie des langage à objet à base de classe pour résoudre des problèmes de transversalité que n'offrent pas les langage à base de classes. javascript n'ayant pas ces contrainte la notion d'interface n'a aucune raison d'exister. elle ne sert à rien. ton objet n'a pas la méthode désirée tu lui ajoute à la volée. A+JYT |
|
|
00
|
|
|
#5 | ||
|
Membre régulier
![]() Inscription : octobre 2010 Messages : 65 ![]() |
Je nuancerai quelque peu les propos de sekaijin
C’est justement parce que les objets JavaScript n’ont pas de notion de meta-donnée (class en Java) et qu’ils évoluent dynamiquement dans le temps, que la notion d’interface peut prendre tous son sens. Pour répondre à Sharcoux, il n’existe pas de mécanique d’interface en JavaScript, personnellement je prototype l’objet javascript pour y ajouter une methode Implements qui vérifie la présence ainsi que le type, des propriétés de l’objet. Code :
|
||
|
|
10
|
|
|
#6 |
|
Expert Confirmé
![]() ![]() Urbaniste Inscription : juillet 2004 Messages : 1 421 ![]() |
c'est bien mon propos on teste la présence d'attributs ou de méthodes
car ceux-ci peuvent être ajouté ou supprimé dynamiquement et non pas l’appartenance à une classe ou l'implémentation d'une interface. ensuite on peut se définir des liste à vérifier et les nommer "interfaces" mais ce sont toujours les attributs et méthodes qu'on teste au final. si je fais une pseudo classe qui implémente une "Interface" que j'instancie un objet de la classe et lui retire une méthode de la dite "Interface" lorsque je ferais le test de vérification sur l'interface je ne peux pas me fier à l'héritage (ni à de quelques métadonnée que j'aurais implémenté dans la classe) pour m'assurer que mon objet est conforme à l'interface. ce n'est plus le cas. A+JYT |
|
|
00
|
|
|
#7 |
|
Membre régulier
![]() Inscription : octobre 2010 Messages : 65 ![]() |
Je suis d’accord avec toi ! Et j’irai même plus loin, toute mécanique de déclaration ou structuration d’Objet en javascript est une erreur.
De nombreux Framework permet de développer en utilisant une approche Orienté Objet, pourtant avec le peu de recule (ca fait que 1 ans que j’ai découvert ce language ) je trouve l’approche générique plus adapté. La réflexivité en Javascript ne coute rien en performance contrairement au language typé comme le C#, alors pourquoi sans priver … en gros écrire des fonctions générique sans ce soucier du type des objets |
|
|
00
|
|
|
#8 |
|
Membre habitué
![]() Étudiant Inscription : mai 2011 Messages : 226 ![]() |
Merci beaucoup pour vos réponses !
Je suis toujours impressionné par la rapidité et la qualité des réponse qu'on obtient sur ce forum. Merci ! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com