Les interfaces java pourquoi les utilisé ???
Résolu
gacki
Messages postés
109
Date d'inscription
Statut
Membre
Dernière intervention
-
gacki Messages postés 109 Date d'inscription Statut Membre Dernière intervention -
gacki Messages postés 109 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai une question consernant les interfaces en java je n'arrive pas a comprendre leurs utilité je veux vraiment voir un exemple ou on ne peux pas utilisé autre chose que les interface ou au moin il faut les utilisé et pourquoi ...
et merci d'avance :)
j'ai une question consernant les interfaces en java je n'arrive pas a comprendre leurs utilité je veux vraiment voir un exemple ou on ne peux pas utilisé autre chose que les interface ou au moin il faut les utilisé et pourquoi ...
et merci d'avance :)
A voir également:
- Les interfaces java pourquoi les utilisé ???
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
3 réponses
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 :) ~
Les architectures n-tiers on verra ça dans quelques années (pour les plus persévérants...)
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)
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.
https://docs.oracle.com/javase/tutorial/