Le Mardi 24 Septembre 2002 16:48, Cedric Beust a �crit : > > Je ne comprends pas pourquoi tellement de personnes essaient d'utiliser > clone(). C'est une methode paresseuse et en general dangereuse, surtout > si tu ne sais pas exactement quelle est la semantique des "sous-clones". > Il suffit d'un petit bug, comme retourner une reference au lieu d'une > copie, et c'est la porte ouverte a des bugs subtils et tres difficiles a > trouver. >
Qu'entends-tu par "s�mantique des sous-clones" ? C'est les clones pour les h�ritiers de ta classe, ou les clones pour les attributs ? Si c'est le premier, je ne vois pas pourquoi une classe se pr�occuperait du comportement de ses h�ritiers, sauf par charit� :-) Si c'est le second, il me semble qu'il faut cloner ce qui est en relation de composition avec l'objet � cloner ; pour ceux qui sont en aggr�gation, cela se discute et se documente. De toutes fa�ons je trouve que c'est une des grandes faiblesses du langage Java en g�n�ral et des beans en particulier que de ne pas expliciter ces relations d'aggr�gation et de composition. A partir de l� on est en permanence menac� par ces bugs subtils dont tu parles. Ils nous bassinent avec des super-serveurs et des J2EE avec 36 m�gas de modularit� tr�s modulaire, mais des trucs comme l'aggr�gation ils connaissent pas. Monde ridicule... > Mieux vaut ecrire tes propres composants et les cloner en utilisant les > principes simples du MVC. > > Typiquement, un panneau a un modele, qui represente son etat. Cloner un > panneau existant devrait etre aussi simple que: > > MyPanel p2 = new MyPanel(); > p2.setModel(p1.getModel()); > C'est ce que je vais faire, finalement, mais comme j'aime bien la m�thode clone, ma premi�re impulsion �tait de le faire dans le cadre de la m�thode clone ! Remarque aussi que ta m�thode ne convient pas � tous les cas : la partie "vue" peut tr�s bien �voluer par elle m�me (changement de couleur, selection, ou simplement position d'une partie d�filante), et ta m�thode ne permet pas de reproduire �a. La partie "vue" sera toujours pr�sent�e dans sa forme initiale. > Je peux detailler, mais en regle general, l'initialisation de mes > [...] Pour le reste tu as tout � fait raison. A+. -- SARL diaam informatique - 04 50 77 12 60 Ingenierie, d�veloppements de syst�mes d'information http://www.diaam-informatique.com
