Marquage d'une catégorie d'objet : interface vide ou flag booleén ?

Marquage d'une catégorie d'objet : interface vide ou flag booleén ? - Java - Programmation

Marsh Posté le 05-04-2004 à 18:04:35    

voila voila, je m'explique :
 
J'ai des objets de type Plugin. Tous ces objets sont d'une classe héritant de Plugin,une classe abstraite.
 
Certains de ces plugins peuvent fonctionner seuls (ils sont alors standalone), les autres ayant besoin d'une sélection d'utilisateurs.
 
comment faire cette différence, sachant que le code est strictement le même dans les deux cas ? et pourquoi surtout ?

Reply

Marsh Posté le 05-04-2004 à 18:04:35   

Reply

Marsh Posté le 05-04-2004 à 18:05:47    

C'est quoi une selection d'utilisateur ? Es-ce que ce serait pas une notion calculée du style dépendance ?


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 05-04-2004 à 18:07:27    

Ba j'vote pour l'interface, mais c'est un peu kif-kif pour moi. L'interface a simplement l'avantage d'être plus modulable ; le jour où tu voudras rajouter des propriétés ou des méthodes à tes plug-ins standalones, ça passera plus proprement avec une interface plutôt qu'en rajoutant les méthodes "à la main" dans tous les plug-ins standalones.
Sorti de là... c'est de l'élégance, stout :D


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 05-04-2004 à 18:08:48    

non, en fait point de vue utilisateur, on a une liste d'utilisateurs connectés et des boutons. Quand on clique sur un bouton, ca instancie un plugin, lui passe la liste des utilisateurs sélectionnés, et le lance.
 
jusque la tout va bien.
 
maintenant je veux revoir mon interface, et avoir un lancement différent pour les 2 types de plugins. Je garde juste les boutons. Si c'est un standalone, je le lance. Sinon, j'affiche une boite de sélection d'utilisateurs avant.

Reply

Marsh Posté le 05-04-2004 à 18:12:02    

Si c'est juste pour pouvoir tester avec un instanceof, je préfère le booléen. Mais c'est sur que l'interface permet des évolutions, faut voir...


---------------
Au royaume des sourds, les borgnes sont sourds.
Reply

Marsh Posté le 06-04-2004 à 10:47:21    

:bounce:

Reply

Marsh Posté le 06-04-2004 à 11:33:48    

autre, il faudrait regarder en détail, mais ça doit être du code dans le plugin qui fait la différence de comportement.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 06-04-2004 à 12:58:22    

moi je vote injection des dependences par le constructeur :whistle:


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 06-04-2004 à 12:59:16    

C'est excellent, 50/50 + nraynaud et Mouinmouin qui partent dans des trucs autres [:ddr555]
Bon courage, lorill [:joce]


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 06-04-2004 à 13:04:46    

-- > t'as un papier là-dessus ?


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 06-04-2004 à 13:04:46   

Reply

Marsh Posté le 06-04-2004 à 13:05:44    

Taiche a écrit :

C'est excellent, 50/50 + nraynaud et Mouinmouin qui partent dans des trucs autres [:ddr555]
Bon courage, lorill [:joce]

j'ai pas encore voté ...


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 06-04-2004 à 13:06:07    

nraynaud a écrit :

j'ai pas encore voté ...


Ouais c'est bien c'que j'dis.


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 06-04-2004 à 13:08:41    

ayé.
 
La différence par rapport aux autres, c'est que j'ai raison ...


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 06-04-2004 à 13:11:11    

Reply

Marsh Posté le 06-04-2004 à 13:22:23    

-- > danke


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 06-04-2004 à 13:25:45    

que piensas?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 06-04-2004 à 13:29:07    

je vois pas comment utiliser la chose. Mais au niveau du problème de lorill, on est déjà dans la puré de pois.
 
J'aimerais d'abord que lorill crache le morceau sur ses classes et qu'on en discute bien après.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 06-04-2004 à 13:31:16    

ben mes classes, tu les as lues déja...
c'est juste sur la classe abstraite Plugin que je veux faire ca :
http://svn.berlios.de/viewcvs/luca [...] &view=auto
 
vous avez besoin de quoi d'autre comme infos ?

Reply

Marsh Posté le 06-04-2004 à 13:31:18    

nraynaud a écrit :

je vois pas comment utiliser la chose.

en mettant l'appli de lorill dans picocontainer ;)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 06-04-2004 à 13:38:33    

tu passes l'initialiseur du plugin à la méthode, et le plugin ira chercher dedans ses utilisateurs s'il en a besoin (c'est un pattern Visiteur).


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 06-04-2004 à 15:48:18    

ca va pas comme ca ?

Code :
  1. public abstract clas Plugin {
  2.    ///...
  3.       public abstract boolean isStandAlone();
  4.    //...
  5. }
  6. public abstract clas StandAlonePlugin  extends Plugin {
  7.    ///...
  8.       public boolean isStandAlone() { return true; }
  9.    //...
  10. }
  11. public abstract clas MachinPlugin /* j'ai pas trouvé de nom :( */ extends Plugin {
  12.    ///...
  13.       public boolean isStandAlone() { return false; }
  14.    //...
  15. }


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 06-04-2004 à 15:56:09    

Moi je suis de l'avis de nraynaud. La class plugin devrait avoir une methode abstraite lancement(), ou appelez la comme vous voudrez, et le code serait dirrerent dans les implementations de s deux types de plugin. Ca sert a ca la liaison dynamique !!

Reply

Marsh Posté le 06-04-2004 à 15:58:13    

benou a écrit :

ca va pas comme ca ?


Non passke y a 2 "s" dans "class" :o


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 06-04-2004 à 16:08:19    

moi je suis de mon avis.


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 06-04-2004 à 16:30:53    

j'aime bien le coup du visiteur, ca permet d'être plus souple pour la suite...

Reply

Marsh Posté le 06-04-2004 à 16:36:19    

:o


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 06-04-2004 à 16:43:02    

j'ai pas lu tes url encore :o

Reply

Marsh Posté le 06-04-2004 à 17:30:55    

Taiche a écrit :


Non passke y a 2 "s" dans "class" :o


[:boiteakaola]

lorill a écrit :

j'aime bien le coup du visiteur, ca permet d'être plus souple pour la suite...


ca te va pas mon truc ? j'ai lu rapidement, j'ai peut être pas bien compris ...


Message édité par benou le 06-04-2004 à 17:31:23

---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 06-04-2004 à 17:36:31    

benou a écrit :


[:boiteakaola]
 
ca te va pas mon truc ? j'ai lu rapidement, j'ai peut être pas bien compris ...

ça veut dire que le client des plugins doit connaitre cette logique, et faire des choses en fonction de "isStandAlone". Ca sent d'avance le boudin pour quand lorill voudra avoir par exemple d'autres types de plugins, ou bien qu'un certain plugin aura besoin d'autres composants du client (au hasard des bouts de config, un composant pour envoyer des mails, que sais-je)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 06-04-2004 à 17:46:48    

the real moins moins a écrit :

ça veut dire que le client des plugins doit connaitre cette logique, et faire des choses en fonction de "isStandAlone". Ca sent d'avance le boudin pour quand lorill voudra avoir par exemple d'autres types de plugins, ou bien qu'un certain plugin aura besoin d'autres composants du client (au hasard des bouts de config, un composant pour envoyer des mails, que sais-je)


dans le premier cas il s'agirait d'un nouveau type de plug-in => nouvelle classe abstraite. Pour la suite, des ajouts de méthode aux plug-in en question résouderaient le problème non ?


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 06-04-2004 à 17:47:47    

benou a écrit :


dans le premier cas il s'agirait d'un nouveau type de plug-in => nouvelle classe abstraite. Pour la suite, des ajouts de méthode aux plug-in en question résouderaient le problème non ?

ben non, ça bloaterait le code d'appel du ou des clients


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 06-04-2004 à 17:48:06    

(help, trouvez moi un équivalent de "bloat" en français [:mlc])


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 06-04-2004 à 17:51:47    

the real moins moins a écrit :

(help, trouvez moi un équivalent de "bloat" en français [:mlc])


ca veut dire quoi bloat  :heink:


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 06-04-2004 à 17:51:58    

the real moins moins a écrit :

(help, trouvez moi un équivalent de "boat" en français [:mlc])

bateau .... je sors.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 06-04-2004 à 17:53:25    

bloated : gonflé, boursoufflé, bouffi.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 06-04-2004 à 17:54:32    

nraynaud a écrit :

bloated : gonflé, boursoufflé, bouffi.


et en quoi boursouflerai le code d'appel des clients ?


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 06-04-2004 à 17:56:30    

benou a écrit :


et en quoi boursouflerai le code d'appel des clients ?  

un if c'est moins "fluide" à lire qu'un appel de méthode ?
en particulier quand la quantité de if a des chances d'augmenter ?
 
edit : en particulier pour faire un truc que l'objet qu'on va tester peut faire de manière simple.


Message édité par nraynaud le 06-04-2004 à 17:57:53

---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 06-04-2004 à 17:58:11    

mouais ... enfin j'ai pas du bien comprendre le besoin, parce que je vois pas de quel test tu parles


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 06-04-2004 à 17:59:55    

benou a écrit :

mouais ... enfin j'ai pas du bien comprendre le besoin, parce que je vois pas de quel test tu parles

Code :
  1. if (plugin.isMachin())
  2.   plugin.faireUnTruc();
  3. else
  4.   plugin.faireAutreChose();


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 06-04-2004 à 18:01:00    

merci nraynaud [:itm]
(pour la traduction et les explications ;))


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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