debutant intêret des interfaces ? [java] - Programmation
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
Marsh Posté le 18-12-2001 à 22:12:33
merci de ta réponse Renaud. J'ai de ce fait les idées
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.
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 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
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
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
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