Partage
  • Partager sur Facebook
  • Partager sur Twitter

Utilité des interfaces

Sujet résolu
    26 mars 2009 à 1:26:28

    Salut les zeros,

    je ne comprends plus l interet des interfaces dans la POO! SVP pour quoi et comment les développeurs les utilisent?

    Merci
    • Partager sur Facebook
    • Partager sur Twitter
      26 mars 2009 à 8:33:42

      Expliqué des dizaines de fois dans des posts précédents, va juste quelques pages plus loin et si vraiment tu as pas compris, pose une question précise.
      • Partager sur Facebook
      • Partager sur Twitter
        26 mars 2009 à 10:53:02

        De toute manière c'est certainement pas en lisant qu'il va apprendre leur utilité. Tant que tu n'es pas confrondé à un problème d'architecture, tu ne trouveras pas tout seul l'utilité d'employer telle ou telle solution, à moins d'être un élève très assidu, et encore.
        Pour la définition primaire de l'interface, tape utilité interface dans le moteur de recherche de ce site tu trouveras une bonne centaine de topics, si ce n'est plus.
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          26 mars 2009 à 11:25:45

          Une interface défini un comportement que devra adopter la classe qui l'impléménte:

          par exemple une interface
          public interface Movable {
              void move();
          }
          


          Toutes les classes qui implements Movable devront être capable de bouger, chacune a sa manière.

          Ainsi, quand on à affaire à un Movable, peu importe sa classe, on sait qu'on peut utiliser void move();
          • Partager sur Facebook
          • Partager sur Twitter
            26 mars 2009 à 16:46:06

            Merci pour vos réponse,

            mais je ne comprends pas où est le fait que les interfaces nous permettent d'éviter la réecriture de code? c quoi la différence entre une interface et l héritage?

            L exemple des chiens n'est bien expliqué dans le tuto de site:'(
            • Partager sur Facebook
            • Partager sur Twitter
              26 mars 2009 à 19:14:41

              Là il faut que tu lises des cours (que tu trouveras à foison sur le net).

              L'interface et l'héritage ne sont pas comparables.
              L'héritage un concept (les enfants héritent des caractéristiques de leurs parents).
              L'interface est une technique qui utilise ce concept d'héritage.
              • Partager sur Facebook
              • Partager sur Twitter
                26 mars 2009 à 21:34:54

                un exemple d'utilité ....
                tu as une foison d'objet quelquonc .... une fourche, un cailloux, des cranes, ...
                tous ces class hérites de choses bien particulières comme par exemple dans le même ordre
                Outils, ElementNaturelle, Squelette,...

                maintenant tu aimerais pouvoir stocker tous les objets qui peuvent êtres une armes dans une Graaannde liste affin que quand le joueur veux choisir son arme, il n'y a plus qu'a parcourir la liste ^^
                et quand il utilise l'arme, peut importe comment elle fait, tu as juste envie de faire arme.attaque(Cible toto) pour que le joueur puisse attaquer avec ....


                ben pour faire ça tu créé une interfarce Arme, avec dedans une fonction astraite, "public void attaque(Cible toto);"
                ainsi tous les objets qui implementerons cette interfaces pourront être utilisé comme une arme :) tu aura plus qu'a faire

                Arme[] armepossible = new Arme[3];
                Arme[1] = new fourche();
                Arme[2] = new cailloux();
                 ...
                



                apres ça il suffit que l'objet "joueur contienne un objet de type "Arme" denouveau

                Joueur.setArme(Arme[1]);
                



                et la fonction d'attaque du joueur se résume à : peut importe l'arme ... ça marche toujours ....
                public class Joueur{
                    Arme sonArme;
                    Joueur cibleactuelle;
                
                    public void attaqueCible(){
                      sonArme.attaque(cibleactuelle);}
                
                    public void setArme(Arme toto){sonArme=toto;}
                }
                


                bien sur ici il manque les fonction qui déterminent la cible actuelle du joueur .. mais bon l'idée est là
                • Partager sur Facebook
                • Partager sur Twitter
                  27 mars 2009 à 19:01:16

                  Salut,

                  Citation : Averroes


                  mais je ne comprends pas où est le fait que les interfaces nous permettent d'éviter la réecriture de code?


                  Ben un exemple tout simple, imagine une classe avec une méthode statique qui trie des tableaux (mais alors une méthode vraiment hyper performante écrite par un druide à laquelle tu comprends rien de rien :p ), cette méthode heureusement pour toi prend des objets qui implémentent l'interface Comparable (qui définit une méthode qui permet de comparer deux objets).

                  Du coup, il te suffit d'implémenter Comparable dans une de te classes pour être aussi performant que le druide ;)

                  Citation : Averroes


                  c quoi la différence entre une interface et l héritage?


                  Les interfaces ne définissent que des en-têtes de méthodes, contrairement à l'héritage où tu as des attributs et des méthodes avec éventuellement du code.
                  Aussi, en java (contrairement au C++) on n'hérite que d'une seule classe (donc si tu hérite de quelque chose, hop fini les méthodes de druides), l'astuce est donc de passer par les interfaces pour implémenter différent comportements ^^ .
                  • Partager sur Facebook
                  • Partager sur Twitter

                  "'But I don't want to go among mad people,' said Alice. 'Oh, you can't help that,' said the cat. 'We're all mad here.'" Lewis Carroll

                    27 mars 2009 à 20:50:24

                    Citation :

                    je ne comprends plus l interet des interfaces dans la POO!




                    Tous simplement parce que l'héritage multiple est interdit en java !
                    • Partager sur Facebook
                    • Partager sur Twitter
                      30 mars 2009 à 14:02:01

                      merci tlm pour vos réponses...

                      Vive le forum des Zéros! :lol:
                      • Partager sur Facebook
                      • Partager sur Twitter

                      Utilité des interfaces

                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                      • Editeur
                      • Markdown