Les interfaces java pourquoi les utilisé ???
Résolu/Fermé
gacki
Messages postés
109
Date d'inscription
mardi 23 avril 2013
Statut
Membre
Dernière intervention
15 mars 2016
-
11 août 2013 à 18:15
gacki Messages postés 109 Date d'inscription mardi 23 avril 2013 Statut Membre Dernière intervention 15 mars 2016 - 17 août 2013 à 15:24
gacki Messages postés 109 Date d'inscription mardi 23 avril 2013 Statut Membre Dernière intervention 15 mars 2016 - 17 août 2013 à 15:24
A voir également:
- Les interfaces java pourquoi les utilisé ???
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Comment savoir si quelqu'un utilise mon adresse ip - Guide
- Java décompiler - Télécharger - Langages
3 réponses
kij_82
Messages postés
4089
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
Modifié par kij_82 le 13/08/2013 à 12:19
Modifié par kij_82 le 13/08/2013 à 12:19
Bonjour,
Autre utilité des interfaces:
Permettre de découpler le contract d'un service de son implémentation.
Ce type d'utilisation est surtout répandue dans les architectures SOA et lorsqu'un projet est découpé en plusieurs sous projet.
Exemple concret:
Tu souhaites faire un web service de gestion de voiture qui accède à une base de données pour faire ses recherches / enregistrement.
Tu peux alors découper ton application en plusieurs sous projet (généralement appelé aussi 'module') de la façon suivante (mettons que le projet globale s'appelle 'auto':
- auto-web
- auto-business-service
- auto-business-service-impl
- auto-dataaccess
- auto-dataaccess-impl
Tu peux remarquer qu'à part la partie web dans laquelle il y a les classes de web service, il y a généralement deux projets par type:
- Deux projets pour la partie business
- Deux projets pour la partie accès à la base de données
La partie normal (auto-business-service) est là juste pour avoir les packages contenant les interfaces.
La partie implémentation (auto-business-service-impl) est là juste pour avoir les classes qui implémentent les interfaces définie dans le projet 'normal'.
Il y a bien entendu une dépendance (via Maven par exemple) entre les divers projets:
- auto-web dépend de auto-business-service (et ne vois donc que les contrats / interfaces) des différents services de l'application) afin de faire appel aux différents services de l'application.
- auto-business-service-impl dépend à la fois d'auto-business-service (pour implémenter les contracts de service) et d'auto-dataaccess (pour faire appel par injection aux différents DAO de l'application.
- auto-dataaccess-impl dépend d'auto-dataaccess afin d'implémenter les contracts d'accès aux données (DAO)
Avec une telle organisation et gestion de dépendance, cela permet de rendre l'application plus lisible et maintenable. En effet, tant que les interfaces ne changent pas, mais si on change le code des implémentation, la partie web service par exemple ne sera pas impactée puisque tout ce qui l'intéresse c'est la définition des contract de service via les interfaces.
Ainsi donc, les interfaces permettent de découpler la définition de l'implémentation de quelque chose.
Ce principe peut être repris pour tout et n'importe quoi, l'exemple donné ici n'en est qu'une utilisation parmis d'autres.
~ N'oubliez pas la balise "Résolu" lorsque votre problème est... résolu :) ~
Autre utilité des interfaces:
Permettre de découpler le contract d'un service de son implémentation.
Ce type d'utilisation est surtout répandue dans les architectures SOA et lorsqu'un projet est découpé en plusieurs sous projet.
Exemple concret:
Tu souhaites faire un web service de gestion de voiture qui accède à une base de données pour faire ses recherches / enregistrement.
Tu peux alors découper ton application en plusieurs sous projet (généralement appelé aussi 'module') de la façon suivante (mettons que le projet globale s'appelle 'auto':
- auto-web
- auto-business-service
- auto-business-service-impl
- auto-dataaccess
- auto-dataaccess-impl
Tu peux remarquer qu'à part la partie web dans laquelle il y a les classes de web service, il y a généralement deux projets par type:
- Deux projets pour la partie business
- Deux projets pour la partie accès à la base de données
La partie normal (auto-business-service) est là juste pour avoir les packages contenant les interfaces.
La partie implémentation (auto-business-service-impl) est là juste pour avoir les classes qui implémentent les interfaces définie dans le projet 'normal'.
Il y a bien entendu une dépendance (via Maven par exemple) entre les divers projets:
- auto-web dépend de auto-business-service (et ne vois donc que les contrats / interfaces) des différents services de l'application) afin de faire appel aux différents services de l'application.
- auto-business-service-impl dépend à la fois d'auto-business-service (pour implémenter les contracts de service) et d'auto-dataaccess (pour faire appel par injection aux différents DAO de l'application.
- auto-dataaccess-impl dépend d'auto-dataaccess afin d'implémenter les contracts d'accès aux données (DAO)
Avec une telle organisation et gestion de dépendance, cela permet de rendre l'application plus lisible et maintenable. En effet, tant que les interfaces ne changent pas, mais si on change le code des implémentation, la partie web service par exemple ne sera pas impactée puisque tout ce qui l'intéresse c'est la définition des contract de service via les interfaces.
Ainsi donc, les interfaces permettent de découpler la définition de l'implémentation de quelque chose.
Ce principe peut être repris pour tout et n'importe quoi, l'exemple donné ici n'en est qu'une utilisation parmis d'autres.
~ N'oubliez pas la balise "Résolu" lorsque votre problème est... résolu :) ~
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
11 août 2013 à 19:26
11 août 2013 à 19:26
Tu devrais regarder ici :
https://forums.commentcamarche.net/forum/affich-28411649-implementation
https://forums.commentcamarche.net/forum/affich-28411649-implementation
GRDX
Messages postés
128
Date d'inscription
samedi 10 août 2013
Statut
Membre
Dernière intervention
9 juin 2014
30
11 août 2013 à 19:32
11 août 2013 à 19:32
Bonjour,
les interfaces permettent (entre-autre) de répondre à l'absence de l'héritage multiple et proposent une implémentation similaire.
les interfaces permettent (entre-autre) de répondre à l'absence de l'héritage multiple et proposent une implémentation similaire.
13 août 2013 à 18:56
Les architectures n-tiers on verra ça dans quelques années (pour les plus persévérants...)
16 août 2013 à 02:43
16 août 2013 à 07:55
Mais si tout cela est abstrait pour l'instant, tu en verras surement l'utilité plus tard donc pour l'instant tu peux faire l'impasse là dessus, tu y reviendras lorsque tu seras prêt (la notion d'interface est récente dans l'histoire de la programmation : avant tout le monde s'en passait sans problème)
16 août 2013 à 13:12
Site du zéro, comment ca marche, développer.net pour commencer, tu y trouveras de nombreux tutoriaux. Pour des questions plus technique, je te recommande Stackoverflow ou un site similaire selon la catégorie de tes questions.
Bonne chance.
Modifié par KX le 16/08/2013 à 18:43
https://docs.oracle.com/javase/tutorial/