Partage
  • Partager sur Facebook
  • Partager sur Twitter

[c#]Les interfaces

incompréhension

Sujet résolu
    25 juillet 2011 à 22:09:57

    Bonjour, j'arrive au niveaux des interfaces et la c'est le blanc.
    Je ne vois pas à quoi elles peuvent servir.

    Je n'en vois pas du tout l'utilité, on pourrait crée tout simplement ces fonctions dans les classes, et les appeler à l'aide des objets??

    Si il y aurait un exemple concret qui puisse m'aider.
    Dans le tuto c'est écrit " il s'agit d'un point essentiel", est-ce que vous les utilisez souvent?

    J'ai lu MSDN mais sa reste flou. Si vous avez des exercices avec l'utilisation des interfaces je suis preneur.
    merci d'avance
    • Partager sur Facebook
    • Partager sur Twitter
      25 juillet 2011 à 23:25:19

      Une interface permet de déclarer un ensemble des services qui seront exposés par les classes qui l'implémentent, sans préciser quelle seront la nature de ces classes et l'implémentation exacte de ces services.

      Tu peux faire une analogie avec les métiers. Imagine qu'il y ait le feu chez toi: tu fais appel aux pompiers. Tu te fiches de savoir si les pompiers qui vont arriver chez toi sont grands ou petits, Français ou étrangers, s'ils viennent de la caserne du coin ou de l'autre côté du département: ce qui compte c'est qu'ils soient capables d'éteindre l'incendie, et qu'ils le fassent "vite et bien". En gros leur nature exacte (classe) ne t'intéresse pas: ce qui compte c'est les services (interface) qu'ils sont capables de t'offrir.

      Un exemple au hasard vu tout à l'heure sur le forum: l'interface INotifyPropertyChanged. Cette interface indique que les classes qui l'implémentent possèdent un événement PropertyChanged qui se déclenche lorsque la valeur d'une de leurs propriétés a été modifiée. Il peut s'agir de beaucoup de classes différentes: une collection d'objets, le ViewModel ou un contrôle d'UI, ou encore une entité du modèle de données. Une solution serait de faire hériter toutes ces classes d'une même classe de base, mais c'est souvent très contraignant et de plus ça sous-entendrait qu'elles ont toutes une nature similaire. L'interface offre une manière "standard" d'identifier tous les objets qui possèdent officiellement cet événement, tout comme le métier "Pompier" identifie globalement toutes les personnes officiellement capables d'éteindre un incendie. ;)

      Autre exemple: l'interface IEnumerable indique que les classes qui l'implémentent sont capables de fournir un énumérateur (ou itérateur), lequel permet de parcourir séquentiellement un ensemble de données. Cette interface est notamment implémentée par toutes les collections d'objets: tableaux, listes etc. L'instruction foreach fonctionne avec tous les objets qui implémentent IEnumerable, tout comme l'instruction using fonctionne avec tous les objets qui implémentent IDisposable.
      • Partager sur Facebook
      • Partager sur Twitter
        26 juillet 2011 à 9:33:32

        OMG ton exemple sur les pompiers, il est juste énorme.

        Faut le mettre dans le tuto :)

        un grand merci à toi
        • Partager sur Facebook
        • Partager sur Twitter

        [c#]Les 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