Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
937 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [Résolu]Interface marqueur

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu]Interface marqueur

n°1274910
milootoolo​o
Posté le 30-12-2005 à 12:09:43  profilanswer
 

Bonjour,
 
J'ai bien cherché sur le net, mais je n'ai trouvé aucune réponse satisfaisante pour savoir ce qu'est une interface marqueur, et à quoi elle sert.
Quelqu'un à t'il une idée?
 
 
Merci


Message édité par milootooloo le 30-12-2005 à 16:40:15
mood
Publicité
Posté le 30-12-2005 à 12:09:43  profilanswer
 

n°1274914
the real m​oins moins
Posté le 30-12-2005 à 12:13:27  profilanswer
 

elle sert à marquer ta classe [:vague nocturne]
 
 
(pour pouvoir faire des cochoncetés genre if (truc instanceof MyMarkerInterface)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1274927
milootoolo​o
Posté le 30-12-2005 à 12:32:47  profilanswer
 

the real moins moins a écrit :

elle sert à marquer ta classe [:vague nocturne]
 
 
(pour pouvoir faire des cochoncetés genre if (truc instanceof MyMarkerInterface)


 
Ben c'est tout? Ca sert a rien!
 
Merci bien!

n°1275029
bugbreeder
Posté le 30-12-2005 à 17:28:03  profilanswer
 

Mais si ça sert, simplement tu n'en as jamais eu besoin donc tu n'as jamais mis le doigt sur le genre de problème que ça résolvait.
 
Problème : tu veux un gestionnaire d'accès "transparent" qui va te chercher des données soit à distance (par RMI) soit en direct (dans la même JVM, gigantesquement plus rapide), mais avec la même commande. Donc ça t'oblige à utiliser 2 classes concrètes complètement différentes "GestionnaireDonneesRMI" et "GestionnaireDonneesLocal" pour récupérer tes données avec la même méthode "getData()". Comment on rend le bousin transparent ("getData()" sur une l'instance en cours sans te soucier qu'elle soit locale ou distante) ?
 
Alors tu crées le type marker "GestionnaireDonnees" (interface qui définit la méthode "getData()" ), tu fais implémenter cette méthode (différemment évidemment) par tes 2 classes "GestionnaireDonneesRMI" et "GestionnaireDonneesLocal" qui puisque elles implémentent toutes les deux l'interface "GestionnaireDonnees" sont bien toutes les deux de ce même type marker.
 
Tu peux donc bien appeler de manière transparente la méthode "getData()" sur une instance quelconque de "GestionnaireDonnees" en te tamponnant intégralement de savoir si elle est locale ou distante, c'est une Factory qui t'aura fourni la bonne classe de toutes façons.
 
@++ !

n°1275030
souk
Tourist
Posté le 30-12-2005 à 17:31:46  profilanswer
 

bugbreeder a écrit :

Mais si ça sert, simplement tu n'en as jamais eu besoin donc tu n'as jamais mis le doigt sur le genre de problème que ça résolvait.
 
Problème : tu veux un gestionnaire d'accès "transparent" qui va te chercher des données soit à distance (par RMI) soit en direct (dans la même JVM, gigantesquement plus rapide), mais avec la même commande. Donc ça t'oblige à utiliser 2 classes concrètes complètement différentes "GestionnaireDonneesRMI" et "GestionnaireDonneesLocal" pour récupérer tes données avec la même méthode "getData()". Comment on rend le bousin transparent ("getData()" sur une l'instance en cours sans te soucier qu'elle soit locale ou distante) ?
 
Alors tu crées le type marker "GestionnaireDonnees" (interface qui définit la méthode "getData()" ), tu fais implémenter cette méthode (différemment évidemment) par tes 2 classes "GestionnaireDonneesRMI" et "GestionnaireDonneesLocal" qui puisque elles implémentent toutes les deux l'interface "GestionnaireDonnees" sont bien toutes les deux de ce même type marker.
 
Tu peux donc bien appeler de manière transparente la méthode "getData()" sur une instance quelconque de "GestionnaireDonnees" en te tamponnant intégralement de savoir si elle est locale ou distante, c'est une Factory qui t'aura fourni la bonne classe de toutes façons.
 
@++ !


 
t'as pas du comprendre non plus ce que c'était [:pingouino]
 

n°1275049
the real m​oins moins
Posté le 30-12-2005 à 17:58:57  profilanswer
 

bugbreeder a écrit :

Alors tu crées le type marker "GestionnaireDonnees" (interface qui définit la méthode "getData()" )


 
une interface "marqueur", par définition, ne définit aucune méthode [:pingouino]
 
 
... enfin, ça explique ton pseudo [:pingouinbo]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1275102
bugbreeder
Posté le 30-12-2005 à 18:53:31  profilanswer
 

the real moins moins a écrit :

une interface "marqueur", par définition, ne définit aucune méthode


 
1) On ne doit pas avoir les mêmes lectures, "marqueur" c'est pour tout besoin d'imprimer un type particulier à une classe, ça peut donc aussi s'appliquer à une interface ou une classe abstraite si on veut. Je n'ai jamais lu jusqu'ici sur une bonne douzaine de bouquins Java qu'elle ne devait définir aucune méthode, c'est comme le coup de la classe abstraite qui peut très bien ne comporter aucune méthode abstraite. C'est valable aussi pour le coup de l'interface qui ne définit que des constantes, elle relève aussi du "marqueur" même si son usage n'est que d'être un container de constantes.
 
2) Lorsque j'ai sorti ça à Sun lors de la certification Développeur, ils n'ont rien dit, et j'ai eu le maximum de points sur cet aspect (c'est sur la partie ergonomie que j'en ai perdu), donc je ne vois pas pourquoi ce ne serait pas valable.
 
3) Si tu as un meilleur exemple, on attend le tien, ça serait beaucoup plus constructif.

n°1275116
souk
Tourist
Posté le 30-12-2005 à 19:30:49  profilanswer
 

bugbreeder a écrit :

1) On ne doit pas avoir les mêmes lectures, "marqueur" c'est pour tout besoin d'imprimer un type particulier à une classe, ça peut donc aussi s'appliquer à une interface ou une classe abstraite si on veut. Je n'ai jamais lu jusqu'ici sur une bonne douzaine de bouquins Java qu'elle ne devait définir aucune méthode, c'est comme le coup de la classe abstraite qui peut très bien ne comporter aucune méthode abstraite. C'est valable aussi pour le coup de l'interface qui ne définit que des constantes, elle relève aussi du "marqueur" même si son usage n'est que d'être un container de constantes.
 
2) Lorsque j'ai sorti ça à Sun lors de la certification Développeur, ils n'ont rien dit, et j'ai eu le maximum de points sur cet aspect (c'est sur la partie ergonomie que j'en ai perdu), donc je ne vois pas pourquoi ce ne serait pas valable.
 
3) Si tu as un meilleur exemple, on attend le tien, ça serait beaucoup plus constructif.


1)le probleme c'est que tu as illustre une interface marqueur avec une interface banale ...
2)comment t'as une grosse bite [:pingouino]
3)Serializable

n°1275121
milootoolo​o
Posté le 30-12-2005 à 19:38:38  profilanswer
 

Oui j'ai lu aussi qu'un interface marqueur n'avais pas de méthodes..
Enfin, a mon avis, ya une définition stricte et un définition utilitaire..
 
Sinon heu.. l'interface Serialisable est simplement définie comme ca?
 

Code :
  1. interface Serialisable{
  2.     //Parce qu'en plus d'abord
  3. }


 
Ou bien.. g rien compris??
 
 
Ca rend malpoli le java ou coi? Bordel?
 
Sinon, ya un topic encore plus classe sur les classes mutables et immutables..
Allez vous engueuler la bas ca m'aide.. (merci qd meme de vos réponses)

Message cité 1 fois
Message édité par milootooloo le 30-12-2005 à 19:45:26
n°1275123
the real m​oins moins
Posté le 30-12-2005 à 19:45:31  profilanswer
 

bugbreeder a écrit :

1) On ne doit pas avoir les mêmes lectures, "marqueur" c'est pour tout besoin d'imprimer un type particulier à une classe, ça peut donc aussi s'appliquer à une interface ou une classe abstraite si on veut.


 
ok, alors tu m'expliques pourquoi on appelerait une interface non-vide "marqueur" .. mais pas toutes les interfaces ?  
 
(je passe sur ton étalage pour le reste de ton post :sarcastic: )


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
mood
Publicité
Posté le 30-12-2005 à 19:45:31  profilanswer
 

n°1275124
the real m​oins moins
Posté le 30-12-2005 à 19:46:45  profilanswer
 

milootooloo a écrit :

Oui j'ai lu aussi qu'un interface marqueur n'avais pas de méthodes..
Enfin, a mon avis, ya une définition stricte et un définition utilitaire..
 
Sinon heu.. l'interface Serialisable est simplement définie comme ca?
 

Code :
  1. interface Serialisable{
  2.     //Parce qu'en plus d'abord
  3. }


 
Ou bien.. g rien compris??


ben.. oui t'as compris, mais tu sais que t'as les sources, avec ton jdk ? [:boidleau]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1275152
milootoolo​o
Posté le 30-12-2005 à 22:07:41  profilanswer
 

the real moins moins a écrit :

ben.. oui t'as compris, mais tu sais que t'as les sources, avec ton jdk ? [:boidleau]


Jme suis dit que tu me répondrait ca en ecrivant ma réponse.. enfin. Je vais aller regarder qd meme!
Merci


Message édité par milootooloo le 30-12-2005 à 22:08:25
n°1275155
bugbreeder
Posté le 30-12-2005 à 22:23:04  profilanswer
 

souk a écrit :

1)le probleme c'est que tu as illustre une interface marqueur avec une interface banale ...


 
Comme "milootoolo" l'a fait remarquer il y a une définition stricte et un définition utilitaire, on peut très bien utiliser une interface banale pour marquer un type sans s'intéresser aux fonctionnalités derrière, dans mon exemple c'était l'aspect "transparent" qui comptait donc seulement le type.
Ce n'est pas que je tienne à avoir raison, si plusieurs personnes ont lu qu'une interface marqueur n'avais pas de méthodes ça doit être vrai et je dois avoir tort. Moi je ne suis jamais tombé dessus, seulement sur l'usage sémantique de la chose...
 

souk a écrit :

2)comment t'as une grosse bite


 
D'une part le niveau Développeur c'était jusqu'à très récemment le 2ème sur une échelle de 6 (SCJP, SCJD, SCWCD, SCBCD, SCDJWS, SCEA) donc "plus complètement débutant", alors il me semble que tu as une vision extrêmement malformée des choses si tu estimes que c'est si élevé que ça. D'autre part en très clair ça voulait dire que si les experts en Java de chez Sun qui me notaient n'ont pas jugé utile de me sanctionner sur ce point alors qu'ils ne se gêneraient pas pour le faire à la moindre erreur, alors c'est qu'il est au moins acceptable d'un certain point de vue. Même si tu es un expert de chez Sun comme Alexis Moussine-Pouchkine habilité à certifier les autres, ce dont je doute énormément vu la teneur gratuitement insultante de cette réponse, ça ne te donne pas droit de parler à quelqu'un sur ce ton. Les mecs vraiment bons sont tous capables d'expliquer n'importe quoi sans insulter qui que ce soit, surtout dans le domaine technique.
 

souk a écrit :

3)Serializable


 
Oui et non. Oui au sens du commentaire de l'API "The serialization interface has no methods or fields and serves only to identify the semantics of being serializable", car il y a bien de la fonctionnalité derrière qui va transformer l'objet en fichier ".ser", ce n'est pas qu'une question de marquage de type mais bien une demande de prise en compte automatique de fonctionnalité. Donc non au sens de la question de "milootoolo", qui attend toujours un exemple montrant l'utilité de typer un objet avec une interface "marker" sans utiliser la moindre fonctionnalité derrière, sinon une classe ou une interface normale suffiraient...

n°1275197
souk
Tourist
Posté le 31-12-2005 à 00:20:21  profilanswer
 

bugbreeder a écrit :

Comme "milootoolo" l'a fait remarquer il y a une définition stricte et un définition utilitaire, on peut très bien utiliser une interface banale pour marquer un type sans s'intéresser aux fonctionnalités derrière, dans mon exemple c'était l'aspect "transparent" qui comptait donc seulement le type.
Ce n'est pas que je tienne à avoir raison, si plusieurs personnes ont lu qu'une interface marqueur n'avais pas de méthodes ça doit être vrai et je dois avoir tort. Moi je ne suis jamais tombé dessus, seulement sur l'usage sémantique de la chose...

c'est quoi pour toi marquer un type ? bon sinon fait deux trois recherche sur les marker interfaces et comme ca tu l'auras lu qu'elles n'ont pas de methodes.  
 
 

bugbreeder a écrit :


D'une part le niveau Développeur c'était jusqu'à très récemment le 2ème sur une échelle de 6 (SCJP, SCJD, SCWCD, SCBCD, SCDJWS, SCEA) donc "plus complètement débutant", alors il me semble que tu as une vision extrêmement malformée des choses si tu estimes que c'est si élevé que ça. D'autre part en très clair ça voulait dire que si les experts en Java de chez Sun qui me notaient n'ont pas jugé utile de me sanctionner sur ce point alors qu'ils ne se gêneraient pas pour le faire à la moindre erreur, alors c'est qu'il est au moins acceptable d'un certain point de vue. Même si tu es un expert de chez Sun comme Alexis Moussine-Pouchkine habilité à certifier les autres, ce dont je doute énormément vu la teneur gratuitement insultante de cette réponse, ça ne te donne pas droit de parler à quelqu'un sur ce ton. Les mecs vraiment bons sont tous capables d'expliquer n'importe quoi sans insulter qui que ce soit, surtout dans le domaine technique.

 
 [:souk]  
 

bugbreeder a écrit :


Oui et non. Oui au sens du commentaire de l'API "The serialization interface has no methods or fields and serves only to identify the semantics of being serializable", car il y a bien de la fonctionnalité derrière qui va transformer l'objet en fichier ".ser", ce n'est pas qu'une question de marquage de type mais bien une demande de prise en compte automatique de fonctionnalité. Donc non au sens de la question de "milootoolo", qui attend toujours un exemple montrant l'utilité de typer un objet avec une interface "marker" sans utiliser la moindre fonctionnalité derrière, sinon une classe ou une interface normale suffiraient...


c'est la que tu n'as pas compris, et c'est bien tout ce qu'on dit depuis le debut. Une interface marker est une interface qui n'induit pas de comportement dans l'objet qui l'implemente (ie, pas de methodes propres a l'interface), elle sert juste a marquer cet objet de telle sorte que d'autres objets le reconnaissent et le traitent en consequence. aujourd'hui avec java5, si on reecrivait toute l'API java, typiquement, on utiliserait des annotations pour faire ce genre de trucs....Il n'y a typiquement pas de fonctionnalite derriere une interface marker.... reprenons Serializable par exemple... La JVM sait serializer n'importe quel objet qui implemente Serializable, sachant que Serializable n'inclut aucun code, la JVM peut donc serializer tout ce qu'elle veut, mais se restraint uniquement aux objets marques comme tels. enfin bref.... j'ai pas envie de m'etaler sur un truc que la moindre recherche google va eclairer.....


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [Résolu]Interface marqueur

 

Sujets relatifs
Resolu [VBA][EXCEL] GetExternalData sous Excel97[resolu]Ma fonction de calcul des fps est-elle bonne ?
Problème sur un exo de C [RESOLU][Resolu] DataGrid colonne actuelle
[ RESOLU ] Effacer des fichiers PDF qui ont plus d'une heure[Resolu]Erreur à la fermeture de la balise HTML
[Résolu] Probleme de mise en page[C] problème de réallocation de la taille d'une chaine [résolu]
[Batch] Accents et autres caractères exotiques [Résolu]incrément (résolu)
Plus de sujets relatifs à : [Résolu]Interface marqueur


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR