Précédent   Forum du club des développeurs et IT Pro > Dotnet > Langages > VB.NET
VB.NET Forum d'entraide sur la programmation Visual Basic .NET. Avant de poster -> FAQ VB.NET, Articles VB.NET, Sources VB.NET
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 25/12/2012, 15h42   #1
boby15000
Membre à l'essai
 
Inscription : mars 2008
Messages : 102
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 102
Points : 24
Points : 24
Par défaut Les Interfaces, Explications

Bonjour,

Après avoir lu plusieurs articles sur la définition et la création d'interface en VB.net, je ne comprends toujours pas leurs utilités.
A quoi servent réellement les interfaces ? Qu'apportent-elles vraiment ? Existent-ils des exemples de codes avec et sans interfaces montrant ainsi leurs utilisées.

Si quelqu'un peut m'expliquer réellement ce que son les interfaces en soin, cela serai très aimable.

Merci Beaucoup...
boby15000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/12/2012, 17h51   #2
youtpout978
Membre Expert
 
Homme John Doe
Développeur .NET
Inscription : novembre 2010
Messages : 911
Détails du profil
Informations personnelles :
Nom : Homme John Doe
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur .NET

Informations forums :
Inscription : novembre 2010
Messages : 911
Points : 1 457
Points : 1 457
Un lien vers une discussion similaire:
Interface
youtpout978 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/12/2012, 19h32   #3
boby15000
Membre à l'essai
 
Inscription : mars 2008
Messages : 102
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 102
Points : 24
Points : 24
Merci beaucoup...
boby15000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/01/2013, 20h57   #4
boby15000
Membre à l'essai
 
Inscription : mars 2008
Messages : 102
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 102
Points : 24
Points : 24
Bonjour
J'ai beau avoir consulté plusieurs Post du Forum, mais je vous avoue que je ne comprends toujours pas l'utilité des interfaces.

Comme je le demandais dans mon post précédent, existent-ils des exemples de codes avec et sans interfaces montrant ainsi leurs utilisées ?
Cela permettrait ainsi de montrer réellement leurs efficacités.

Je vous remercie d'avance pour vos réponses...

Merci.
BONNE ANNEE 2013 ET MEILLEURS VOEUX A TOUS LES MEMBRES DU FORUM...
boby15000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/01/2013, 22h07   #5
Sankasssss
Modérateur
 
Avatar de Sankasssss
 
Homme Gaëtan Wauthy
Développeur .NET
Inscription : novembre 2006
Messages : 1 366
Détails du profil
Informations personnelles :
Nom : Homme Gaëtan Wauthy
Âge : 30
Localisation : Belgique

Informations professionnelles :
Activité : Développeur .NET
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : novembre 2006
Messages : 1 366
Points : 3 222
Points : 3 222
Bonsoir,

Voici une explication des interfaces : http://plasserre.developpez.com/cours/vb-net/?page=poo2

Sinon, avec une petite recherche :
les interfaces site:developpez.com
tu trouveras plein d'exemple

Bonne année et meilleurs voeux
__________________
Règles du forum + Comment utiliser Developpez.com =
Si vous développez en .NET, la FAQ, les tutos et l'aide MSDN sont vos amis !!!
LINQ c'est puissant...
Sankasssss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2013, 11h06   #6
Pol63
Expert Confirmé Sénior
 
Avatar de Pol63
 
Homme Sébastien
Développeur .NET / DBA SQL SERVER
Inscription : avril 2007
Messages : 10 225
Détails du profil
Informations personnelles :
Nom : Homme Sébastien
Âge : 31
Localisation : France, Puy de Dôme (Auvergne)

Informations professionnelles :
Activité : Développeur .NET / DBA SQL SERVER
Secteur : Industrie

Informations forums :
Inscription : avril 2007
Messages : 10 225
Points : 17 082
Points : 17 082
Envoyer un message via Skype™ à Pol63
une interface sert à regrouper les choses communes d'éléments différents, permettant de les traiter sans distinctions et avec donc moins de code

par exemple tu as des capteurs à relier à un pc pour afficher leurs valeurs, 2 types de capteurs débit et wattmetre
tu fais donc une interface
Code :
1
2
3
4
5
public interface ICapteur
  sub lecturevaleur
  property valeuractuelle as decimal
  property connectionOk as boolean
end interface
tu fais 2 classes implémentantes
Code :
1
2
3
4
5
6
7
8
9
public class capteurDebit
  implements ICapteur
 
(...)
 
public class capteurWatt
  implements ICapteur
 
(...)
le fait de mettre l'implements ca ajoute le corps des membres définis (la sub et les 2 propriétés)
là tu écris le code spécifique (dialogue avec les capteur etc...)

ensuite dans ton code tu peux faire une collection de capteur sans te poser de questions

Code :
1
2
dim l as new list(of ICapteur)
' il faut une instanciation des classes pour remplir le list
sur un timer :
Code :
1
2
3
4
for each c in l 
  c.lecturevaleur
  lelabelassocié.text = c.valeuractuelle
next
dans le code on fait donc abstraction de ce que c'est réellement, on sait que ca fonctionne et c'est suffisant ^^

c'est généralement utilisé avec le design pattern factory
qui permet lui de faire le new de la classe adéquate en fonction d'un paramètre et retournant l'instance as ICapteur
Pol63 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 02/01/2013, 13h38   #7
boby15000
Membre à l'essai
 
Inscription : mars 2008
Messages : 102
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 102
Points : 24
Points : 24
Citation:
Envoyé par Sankasssss Voir le message
Bonsoir,

Voici une explication des interfaces : http://plasserre.developpez.com/cours/vb-net/?page=poo2

Sinon, avec une petite recherche :
les interfaces site:developpez.com
tu trouveras plein d'exemple
Je te remercie pour ta réponse, mais le cours de "Plasserre" est la première chose que j'ai lu et je n'ai pas bien compris, d'où mon message sur le forum.
boby15000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2013, 13h41   #8
boby15000
Membre à l'essai
 
Inscription : mars 2008
Messages : 102
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 102
Points : 24
Points : 24
Citation:
Envoyé par Pol63 Voir le message
une interface sert à regrouper les choses communes d'éléments différents, permettant de les traiter sans distinctions et avec donc moins de code

par exemple tu as des capteurs à relier à un pc pour afficher leurs valeurs, 2 types de capteurs débit et wattmetre
tu fais donc une interface
Code :
1
2
3
4
5
public interface ICapteur
  sub lecturevaleur
  property valeuractuelle as decimal
  property connectionOk as boolean
end interface
tu fais 2 classes implémentantes
Code :
1
2
3
4
5
6
7
8
9
public class capteurDebit
  implements ICapteur
 
(...)
 
public class capteurWatt
  implements ICapteur
 
(...)
le fait de mettre l'implements ca ajoute le corps des membres définis (la sub et les 2 propriétés)
là tu écris le code spécifique (dialogue avec les capteur etc...)

ensuite dans ton code tu peux faire une collection de capteur sans te poser de questions

Code :
1
2
dim l as new list(of ICapteur)
' il faut une instanciation des classes pour remplir le list
sur un timer :
Code :
1
2
3
4
for each c in l 
  c.lecturevaleur
  lelabelassocié.text = c.valeuractuelle
next
dans le code on fait donc abstraction de ce que c'est réellement, on sait que ca fonctionne et c'est suffisant ^^

c'est généralement utilisé avec le design pattern factory
qui permet lui de faire le new de la classe adéquate en fonction d'un paramètre et retournant l'instance as ICapteur
Merci beaucoup pour ton aide, cependant pourrais-tu m’éclaircir d'avantage en me montrant les différences entres l’utilité des Interfaces et l'Héritage.

Milles excuses, mais j'ai vraiment du mal à comprendre la différence entre les deux d'autant plus qu'actuellement l'utilité des Interfaces ne sont pas très claire pour moi.

Merci d'avance...
boby15000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2013, 13h51   #9
Pol63
Expert Confirmé Sénior
 
Avatar de Pol63
 
Homme Sébastien
Développeur .NET / DBA SQL SERVER
Inscription : avril 2007
Messages : 10 225
Détails du profil
Informations personnelles :
Nom : Homme Sébastien
Âge : 31
Localisation : France, Puy de Dôme (Auvergne)

Informations professionnelles :
Activité : Développeur .NET / DBA SQL SERVER
Secteur : Industrie

Informations forums :
Inscription : avril 2007
Messages : 10 225
Points : 17 082
Points : 17 082
Envoyer un message via Skype™ à Pol63
si tu peux éviter de citer 50 lignes pour rien ca serait pas plus mal, dans le pire des cas un @untel permet de spécifier à qui on parle

il n'y a pas énormément de différences entre l'héritage et les interfaces
dans mon exemple on aurait pu faire
Code :
1
2
3
4
 
public mustinherit class Capteur
  mustoverride sub lecturevaleur
  (...)
la classe mustinherit permet par rapport aux interfaces de rajouter un peu de code générique
alors que l'interface ne permet que de décrire les membres et les types

l'avantage des interfaces c'est qu'une classe peut implémenter plusieurs interfaces, alors qu'en .net elle ne peut pas hériter de plusieurs classes
dans certains traitement avec if typeof instance is Iquelquechose ca permet de traiter plein de choses différentes avec le même code
on pourrait sur mon exemple imaginer que certains capteurs aient une gestion de seuils, on feraient alors une interface ISeuils certaines classes de capteurs l'implémenteraient en plus de ICapteur et pas d'autres
dans la boucle for each on pourrait tester le type de l'instance et si elle gère ISeuils on pourrait afficher les seuils dans des numericupdown

les interfaces sont aussi pratiques pour du développement à plusieurs, quand on a une classe à écrire, on écrit l'interface, et d'autres développeurs peuvent commencer à coder en utilisant l'interface pendant qu'on écrit la classe l'implémentant

en bref sur des petits projets c'est rarement indispensable même si ca peut etre utile

si tu es débutant tu peux t'en passer pour l'instant, on ne peut pas assimiler et utiliser tous les concepts de .net dès le début
Pol63 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 02/01/2013, 14h24   #10
boby15000
Membre à l'essai
 
Inscription : mars 2008
Messages : 102
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 102
Points : 24
Points : 24
Merci beaucoup pour tes infos. Il est vrai que je suis débutant, mais je voulais vraiment comprendre ce sujet.

Néanmoins même si tout n'est pas encore bien clair, je te remercie quand même...
boby15000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2013, 20h24   #11
Sankasssss
Modérateur
 
Avatar de Sankasssss
 
Homme Gaëtan Wauthy
Développeur .NET
Inscription : novembre 2006
Messages : 1 366
Détails du profil
Informations personnelles :
Nom : Homme Gaëtan Wauthy
Âge : 30
Localisation : Belgique

Informations professionnelles :
Activité : Développeur .NET
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : novembre 2006
Messages : 1 366
Points : 3 222
Points : 3 222
Pour bien comprendre, renseigne toi sur les pattern de conception (design pattern). Ils utilisent massivement l'héritage et les interfaces.
Moi j'ai commencé avec Design Patterns Tête la première que je recommande pour débuter :
__________________
Règles du forum + Comment utiliser Developpez.com =
Si vous développez en .NET, la FAQ, les tutos et l'aide MSDN sont vos amis !!!
LINQ c'est puissant...
Sankasssss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2013, 17h38   #12
boby15000
Membre à l'essai
 
Inscription : mars 2008
Messages : 102
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 102
Points : 24
Points : 24
Ok, je vais regarder ça en espérant que se soit assez simple pour un débutant.

Merci beaucoup pour ton aide....
boby15000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2013, 01h49   #13
BenoitM
Expert Confirmé
 
Homme Benoît
Inscription : février 2003
Messages : 1 660
Détails du profil
Informations personnelles :
Nom : Homme Benoît
Âge : 32
Localisation : Belgique

Informations forums :
Inscription : février 2003
Messages : 1 660
Points : 2 787
Points : 2 787
une interface est un ensemble de fonctionnalités qui peuvent être indépendantes.
Exemple IMouvement avec les fonctionnalité (Avancer, reculer, tourner a gauche, tourner a droite)
Tu as les objets : Robot, Véhicule,Personne qui peuvent implémenter cet ensemble fonctionnalités mais il est difficile de trouver un Rapport entre un Robot, Véhicule et Personne.
De plus ont peut implémenter plusieurs interface tandis qu'on ne peut hérité que d'une seule classes
__________________
Je ne suis qu'un pauvre débutant alors ne frappez pas si mes idées ne sont pas bonnes
BenoitM est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 21h06.


 
 
 
 
Partenaires

Hébergement Web