Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 13 sur 13
  1. #1
    Nouveau Membre du Club
    Inscrit en
    mars 2008
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : mars 2008
    Messages : 116
    Points : 28
    Points
    28

    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...

  2. #2
    Membre Expert

    Homme Profil pro John Doe
    Développeur .NET
    Inscrit en
    novembre 2010
    Messages
    1 113
    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 : 1 113
    Points : 1 999
    Points
    1 999

    Par défaut

    Un lien vers une discussion similaire:
    Interface

  3. #3
    Nouveau Membre du Club
    Inscrit en
    mars 2008
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : mars 2008
    Messages : 116
    Points : 28
    Points
    28

    Par défaut

    Merci beaucoup...

  4. #4
    Nouveau Membre du Club
    Inscrit en
    mars 2008
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : mars 2008
    Messages : 116
    Points : 28
    Points
    28

    Par défaut

    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...

  5. #5
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro Gaëtan Wauthy
    Développeur .NET
    Inscrit en
    novembre 2006
    Messages
    1 575
    Détails du profil
    Informations personnelles :
    Nom : Homme Gaëtan Wauthy
    Âge : 31
    Localisation : Belgique

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

    Informations forums :
    Inscription : novembre 2006
    Messages : 1 575
    Points : 3 658
    Points
    3 658

    Par défaut

    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

  6. #6
    Expert Confirmé Sénior Avatar de Pol63
    Homme Profil pro Sébastien
    Développeur .NET / DBA SQL SERVER
    Inscrit en
    avril 2007
    Messages
    11 000
    Détails du profil
    Informations personnelles :
    Nom : Homme Sébastien
    Âge : 32
    Localisation : France, Puy de Dôme (Auvergne)

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

    Informations forums :
    Inscription : avril 2007
    Messages : 11 000
    Points : 18 875
    Points
    18 875

    Par défaut

    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

  7. #7
    Nouveau Membre du Club
    Inscrit en
    mars 2008
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : mars 2008
    Messages : 116
    Points : 28
    Points
    28

    Par défaut

    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.

  8. #8
    Nouveau Membre du Club
    Inscrit en
    mars 2008
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : mars 2008
    Messages : 116
    Points : 28
    Points
    28

    Par défaut

    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...

  9. #9
    Expert Confirmé Sénior Avatar de Pol63
    Homme Profil pro Sébastien
    Développeur .NET / DBA SQL SERVER
    Inscrit en
    avril 2007
    Messages
    11 000
    Détails du profil
    Informations personnelles :
    Nom : Homme Sébastien
    Âge : 32
    Localisation : France, Puy de Dôme (Auvergne)

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

    Informations forums :
    Inscription : avril 2007
    Messages : 11 000
    Points : 18 875
    Points
    18 875

    Par défaut

    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

  10. #10
    Nouveau Membre du Club
    Inscrit en
    mars 2008
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : mars 2008
    Messages : 116
    Points : 28
    Points
    28

    Par défaut

    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...

  11. #11
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro Gaëtan Wauthy
    Développeur .NET
    Inscrit en
    novembre 2006
    Messages
    1 575
    Détails du profil
    Informations personnelles :
    Nom : Homme Gaëtan Wauthy
    Âge : 31
    Localisation : Belgique

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

    Informations forums :
    Inscription : novembre 2006
    Messages : 1 575
    Points : 3 658
    Points
    3 658

    Par défaut

    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 :

  12. #12
    Nouveau Membre du Club
    Inscrit en
    mars 2008
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : mars 2008
    Messages : 116
    Points : 28
    Points
    28

    Par défaut

    Ok, je vais regarder ça en espérant que se soit assez simple pour un débutant.

    Merci beaucoup pour ton aide....

  13. #13
    Expert Confirmé
    Homme Profil pro Benoît
    Inscrit en
    février 2003
    Messages
    1 710
    Détails du profil
    Informations personnelles :
    Nom : Homme Benoît
    Âge : 33
    Localisation : Belgique

    Informations forums :
    Inscription : février 2003
    Messages : 1 710
    Points : 2 704
    Points
    2 704

    Par défaut

    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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •