interface en java - Java - Programmation
Marsh Posté le 11-06-2017 à 00:42:12
C'est un "contrat". On est alors sur que les classes qui implémentent telle ou telle interface disposent bien des méthodes/propriétés prévues.
> https://openclassrooms.com/courses/ [...] id/r-21750
Marsh Posté le 13-06-2017 à 01:50:25
Merci pour ta réponse.
Je sais que c'est la raison qui est donnée (un contrat),
ce que je ne comprend pas, c'est la raison de passer par une solution externe et ne pas implémenter les méthodes directement dans la classe. La seule raison qui m'apparait un peu, c'est l'ergonomie, mais ça m'a l'air encore plus compliqué comme ça.
Peut être que le mot contrat sous-entend "commercial" ?
Merci, si tu peux me faire avancer (c'est intellectuel, je peux faire avec ou sans interface mais j'aimerais savoir pourquoi il faudrait croire que c'est plus simple)
Marsh Posté le 13-06-2017 à 01:51:28
Merci pour ta réponse.
Je sais que c'est la raison qui est donnée (un contrat),
ce que je ne comprend pas, c'est la raison de passer par une solution externe et ne pas implémenter les méthodes directement dans la classe. La seule raison qui m'apparait un peu, c'est l'ergonomie, mais ça m'a l'air encore plus compliqué comme ça.
Peut être que le mot contrat sous-entend "commercial" ?
Merci, si tu peux me faire avancer (c'est intellectuel, je peux faire avec ou sans interface mais j'aimerais savoir pourquoi il faudrait croire que c'est plus simple)
Marsh Posté le 13-06-2017 à 01:56:16
Merci pour ta réponse.
Je sais que c'est la raison qui est donnée (un contrat),
ce que je ne comprend pas, c'est la raison de passer par une solution externe et ne pas implémenter les méthodes directement dans la classe. La seule raison qui m'apparait un peu, c'est l'ergonomie, mais ça m'a l'air encore plus compliqué comme ça.
Peut être que le mot contrat sous-entend "commercial" ?
Merci, si tu peux me faire avancer (c'est intellectuel, je peux faire avec ou sans interface mais j'aimerais savoir pourquoi il faudrait croire que c'est plus simple)
Marsh Posté le 14-06-2017 à 13:30:19
Un des exemples les plus fréquents d'utilisation d'interface est l'interface List. Il y a des méthodes qui retournent une List donc l'appelant peut utiliser les méthodes de cette interface et n'a pas à connaitre la vrai classe derrière (ArrayList ou LinkedList par exemple)
Un autre cas classique est pour les DAO (Data Acces Object).
Le fait de définir une interface pour un DAO permet de :
- pouvoir changer l'implémentation sans impacter l'appelant.
ex : une implémentation qui lit des données dans un fichier et une autre qui lit ces données dans une base de données
- utiliser des bouchon pour les tests
Citation : j'aimerais savoir pourquoi il faudrait croire que c'est plus simple |
C'est pas plus simple, c'est plus maintenable.
Marsh Posté le 15-06-2017 à 01:39:36
Je pense que je devrais penser plus maintenable si je veux comprendre, merci.
a+
Marsh Posté le 22-05-2019 à 23:14:08
Bonjour,
la raison principale est que l'on peut utiliser le même code sur tous les objets (potentiellement différents) qui ont une interface.
Normalement, c'est une bonne pratique de construire des algorithmes sur des interfaces plutôt que sur des classes. Cela permet d'utiliser l'algorithme dans des contextes différents non prévus au départ. Un bon exemple est l'algorithme (générique) de tri développé par java. Elle marche sur tous les objets de type "Comparable".
Marsh Posté le 27-05-2019 à 07:09:56
desperatix a écrit : Je pense que je devrais penser plus maintenable si je veux comprendre, merci. |
Lis ce livre, et tu comprendras de suite l'utilité des interfaces : https://www.amazon.fr/First-Design- [...] 0596007124
Marsh Posté le 17-06-2019 à 07:16:30
desperatix a écrit : Je pense que je devrais penser plus maintenable si je veux comprendre, merci. |
Une autre raison, que je n'avais pas précisé: cela permet à un même objet d'implémenter plusieurs comportements (exemple dans le monde réel: une tesla est à la fois une voiture et un ordinateur personnel). C'est une des façons que java supporte l'héritage multiple
Marsh Posté le 09-06-2017 à 12:49:08
Bonjour,
A quoi sert-t'il de créer une interface en java qui va contenir des en-têtes de méthodes qu'il faudra de toutes manières indiquer à nouveau dans la classe qui va implémenter l'interface, n'est-ce pas redondant ?
Merci