Salut;
Est ce quelqu'un peut m'expliquer l'intérêt de l'utilisation d'une interface pour la déclaration/instanciation d'un objet à part le copuplage faible entre les objets !
par exemple:
Merci.Code:List<Type> collection = new ArrayList();
Version imprimable
Salut;
Est ce quelqu'un peut m'expliquer l'intérêt de l'utilisation d'une interface pour la déclaration/instanciation d'un objet à part le copuplage faible entre les objets !
par exemple:
Merci.Code:List<Type> collection = new ArrayList();
Aucun, mais le couplage faible, ça me semble déjà pas mal, non ;) ?
Pour te donner un exemple, en déclarant une List<Type> au lieu d'une ArrayList<Type>, tu fais en sorte que ton programme puisse traiter n'importe quel type de List<Type>, et pas seulement les ArrayList<Type>.
Le jour où tu voudras remplacer ton ArrayList par une LinkedList, une Deque ou bien Collections.unmodifiableList(), tu n'auras pas besoin de toucher au reste, parce que le reste travaille avec toutes les List et pas juste les ArrayList.
Merci, c'est vraiment utile.
Pouvez vous m'exlipquer qu'est ce que se passe exactement au moment de la compilation/exécution pour appeler les méthodes de l'objet ArrayList référencé par un objet de type Interface.
Les méthodes appelées par l'objet "collection" sont de l'interface (au moment de la compilation) !!!!
Ce sont deux moments différents... A la compile il est vérifié que les types sont compatibles (ce qui est le cas), et à l'exécution, l'instance de l'objet est envoyée avec tout ce qui est prévu, donc tout va bien.Citation:
au moment de la compilation/exécution
interface définit les méthodes qui doivent exister dans un objet pour qu'il puisse être utilisé par une méthode qui utilise cet interface, .
J'ai pas bien saisie ce que vous voulez dire !Citation:
Jet à l'exécution, l'instance de l'objet est envoyée avec tout ce qui est prévu, donc tout va bien..
Merci.
Bin, pourquoi y aurait-il un problème à l'exécution, puisque le typage est respecté ?
Ah, oui.
Merci.