Les interfaces - utilités ? - C#/.NET managed - Programmation
Marsh Posté le 21-03-2020 à 14:35:39
dans cette autre exemple
https://www.geeksforgeeks.org/c-sharp-interface/
deux class héritent la même interfaces , c'est un peu plus parlant pour moi.
sauf que j'aurais nommé les méthodes différemment
Marsh Posté le 21-03-2020 à 23:11:26
Par exemple :
Une interface c'est pour introduire une idée d'abstraction. Tu désignes ce que va faire ta classe, par la signature de la méthode, mais sans dire comment elle va le faire. C'est une sorte de contrat.
Comme ça, si tu veux qu'une même chose puisse être faite de différentes façons, tu changes juste la classe qui réalise l'interface, alors que le code qui appelle cette interface n'aura pas du tout besoin d'être modifié.
C'est le cas le plus trivial à comprendre.
Si tu regardes les classes abstraites et le polymorphisme, l'utilité des interfaces te paraitra plus évidente.
Marsh Posté le 22-03-2020 à 13:17:28
merci pour ta réponse, je vais voir dans cette direction
TotalRecall a écrit : |
Marsh Posté le 23-03-2020 à 11:48:27
Regarde le livre "Head First Design Patterns", c'est un livre très didactique grâce auquel tu percuteras de suite grâce à des exemples concrets et très parlants.
Marsh Posté le 24-04-2020 à 20:34:56
bonsoir,
j'avais laché le forum , merci pour ton retour, entre temps je me suis payé
Pro C# 7' by Andrew Troelsen and Philip Japikse et j'arrive à peu près à comprendre l'utilité
Marsh Posté le 12-01-2021 à 15:05:28
Le gros intérêt, c'est quand tu vas avoir besoin depuis un code "global" d'exécuter des méthodes sur des classes spécialisées très différentes.
Un très bon exemple, c'est IComparable
N'importe quelle classe peut (devrait ?) implémenter cette interface, qui permet par exemple d'ordonner une liste d'objet en appelant simplement la méthode du List<T>.Sort()
Marsh Posté le 15-01-2021 à 10:59:26
Harkonnen a écrit : Regarde le livre "Head First Design Patterns", c'est un livre très didactique grâce auquel tu percuteras de suite grâce à des exemples concrets et très parlants. |
oui il est excellent pour démarrer trouvable sans grande difficulté en français sur la toile
Marsh Posté le 05-06-2021 à 12:05:32
Le design de code c'est des choix.
L'utilisation des interfaces, est justifié par :
- un code en gros volume. ( 1 milliers de lignes ... 10 milliers )
- des Types communs dans les traitements à réaliser. ( des objets partout , des tableaux partout , des integers partout , par exemple ).
Et c'est pour ça que les interfaces existent, et proposent des méthodes intégrées, des standards d'utilisation.
C'est des 'outils' "ready to fire", c'est garanti sans erreur lors de l'utilisation.
Bien qu'une bonne gestion de tableaux Array<Type T>, avec un 'tri à bulle' dans une copie de ce tableau, pour 1 ou N colonnes. ça se codes trankilou à un moment.
Mais le principal est le 0 bug vers la fin du dev,
c'est toujours pratique, et bienvenu.
Les mots-clés, dans tout les languages, sont trés florissants.
Et c'est vraiment les "méthodes" de ces abstractions ( que ce soit 'interface' / await / async ) qui font que ce sera utile. ou pas.
Il faut éviter les confusions et usages à la va vite,
et placer les interfaces au bon endroit de son code.
Une interface peut faire tellement de chose dans un code..
Cherchez le 'ground' de votre code, plutot que d'écrire 'interface' juste une fois parceque vous n'avez pas pu faire autrement.
Marsh Posté le 05-06-2021 à 14:05:00
Globalement ca sonne assez juste mais il y a des phrases bien obscures et plein de trucs mélangés
Marsh Posté le 23-06-2021 à 17:23:18
"Cherchez le 'ground' de votre code, plutot que d'écrire 'interface' juste une fois parceque vous n'avez pas pu faire autrement."
Qui a compris cette phrase ?
Marsh Posté le 23-06-2021 à 17:58:35
Tu suggères dire que tout ce qui précède était clair ?
Marsh Posté le 23-06-2021 à 18:25:22
Avec le décodeur "jovalise", ça se comprend à peu près.
Par contre, sur la dernière phrase, le décodeur a boggué.
Marsh Posté le 16-07-2021 à 19:07:11
Désolé pour le déterrage, mais je pige pas de quoi parle djinto.
Outre le cannabinol qui suinte de son message, il ne confond pas un peu les interfaces... avec des méthodes privées/scelées ?
Parce que dire qu'une interface "peut faire tellement de choses" et "c'est des outils ready to fire" je pige pas.
C'est l'inverse d'une interface... qui à la base est une coquille vide, qui ne fait rien d'autre qu'imposer un certain nombre de signatures de méthodes dans les classes dérivées... Ou alors j'ai raté un truc
Marsh Posté le 16-07-2021 à 20:55:01
Je crois que c'est ce qu'il sous-entendait par "ready to fire" (coquille vide mais signature prête à être utilisée).
Marsh Posté le 21-03-2020 à 14:08:20
Bonjour ,
je profite du confinement pour 'avancer' dans les bases de C-Sharp , je suis plutôt du genre à relire plusieurs fois avant de comprendre
Concernant les interfaces :
Je comprends comment utiliser une ou des interfaces, mais à mon stade je n'en comprends pas l'utilité.
Sur les 2 exemples suivant
https://www.tutorialspoint.com/csha [...] rfaces.htm
et
https://openclassrooms.com/fr/cours [...] interfaces
On peut tout simplement lancer les méthodes même sans interfaces !
Avez vous d'autres exemples à me proposer, qui puissent me faire comprendre l'utilité des interfaces ?
merci d'avance.
---------------
Contribuables associés - Arretons les dérives