[java] debutant intêret des interfaces ?

debutant intêret des interfaces ? [java] - Programmation

Marsh Posté le 18-12-2001 à 16:23:33    

Bonjour,
 
Voila je débute en java et la doc de sun
parle d'interface. j'ai compris que c'etait une
méthode non implémentée (enfin je crois), mais  
je ne vois pas à quoi cela sert.  
 
Une petite explication serait la bien venue.
 
En vous remerciant d'avance

Reply

Marsh Posté le 18-12-2001 à 16:23:33   

Reply

Marsh Posté le 18-12-2001 à 19:55:57    

scaldan a écrit a écrit :

Bonjour,
 
Voila je débute en java et la doc de sun
parle d'interface. j'ai compris que c'etait une
méthode non implémentée (enfin je crois), mais  
je ne vois pas à quoi cela sert.  
 
Une petite explication serait la bien venue.
 
En vous remerciant d'avance  




 
Si c'est pour faire un programme de trois classes, ca sert pas a grand chose.
En fait, ca sert entre autres a rajouter un niveau d'abstraction supplementaire.
 
Ex1:  
   tu as une application qui stocke soit sur fichier soit dans oracle. tu declares un interface Storage avec une implementation fichier et une JDBC vers oracle. Tu ne fais jamais appel au implementation mais toujours a l'interface (sauf pour la creation). ensuite au demarrage tu choisis entre l'une ou l'autre des implems, et ton code ne bouge pas.
 
Ex2:
  tu programme une alarme qui as un temps t donne', lance un bout de code donne'. L'interface de ton alarme pourrait etre qqchose du genre set(Date d, DoIt doit) avec DoIt ton interface java, qui contient une methode doMyStuff(). Pour utiliser ton alarme tu declare une classe qui implemente ton interface DoIt, tu utilise la methode set avec ton object et au moment voulu, ton alarme va appeler doMyStuff() sans savoir sur quel type d'object elle l'applique.
 
Est-ce clair ?
 
Renaud

Reply

Marsh Posté le 18-12-2001 à 22:12:33    

merci de ta réponse Renaud. J'ai de ce fait les idées :pt1cable:  
un chti peu plus claires. Mais c un peu comme une interruption
en kksorte ??
C'est en essayant de comprendre un programme sur les
swings que je suis tombé sur l'utilisation de l'interface. Mais
cela ne doit pas être bcp utilisé car j'en ai pas vu bcp dans
les codes pour le moment.


---------------
Si tu ne poses pas les bonnes questions, comment veux-tu avoir les bonnes réponses ?
Reply

Marsh Posté le 19-12-2001 à 00:06:56    

scaldan a écrit a écrit :

merci de ta réponse Renaud. J'ai de ce fait les idées :pt1cable:  
un chti peu plus claires. Mais c un peu comme une interruption
en kksorte ??
C'est en essayant de comprendre un programme sur les
swings que je suis tombé sur l'utilisation de l'interface. Mais
cela ne doit pas être bcp utilisé car j'en ai pas vu bcp dans
les codes pour le moment.  




 
non, pas comme les interruptions, plutot commme les call backs si tu veux vraiment une analogie dans le cas de swing
 
Renaud

Reply

Marsh Posté le 19-12-2001 à 10:06:25    

Pour etre plus précis, il y a deux utilisations possibles
 
Le callback comme l'a bien expliqué Renaud
L'abstraction de process
 
Exemple: dans ton programme tu as des fabriques qui doivent implémenter une méthode createObject() qui sera appelé par ton programme. Pour etre une fabrique au sens de ton appli, elle doit IMPLEMENTER l'interface. Cela garantit que toute fabrique de ton appli respecte bien la définition que tu lui as donnée (i.E. que la méthode createObject() existe toujours
 
public interface Factory
{
    public Object createObject();
}
 
public class StringFactory implemeents Factory
{
       //// bla bla
 
      public Object createObject()
      {
             return new String();
      }
 
}
 
etc .... Au niveau distribué, une interface représente les méthodes qu'il est possible d'appeler sur l'objet. C'est a dire les fonctionnalités publiques que tu peux utilsier. LE client distant utilise l'interface pour accéder à l'objet implémenté qui va fournir effectivmeent le service
 
Voilà si tu veux d'autres détails, n'hésite pas
 
Stéphane


---------------
What is popular is not always right, what is right is not always popular :D
Reply

Marsh Posté le 19-12-2001 à 10:11:21    

mea culpa je n'ai pas bien lu. Renaud a bien expliqué l'abstraction de process aussi.
 
Je suis confus :lol:


---------------
What is popular is not always right, what is right is not always popular :D
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed