|
|||||||
| Débats Les débats et sondages sur le langage et les technologies Java |
|
|
Publicité ' | |||||||||||||||||
|
|
|
Outils de la discussion |
|
|
#81 |
|
Nouveau Membre du Club
![]() Inscription : août 2005 Messages : 73 ![]() |
Je suis contre.
1) Je trouve primo que faire des chaînages ne devraient pas faire partie des "best practices". Comme déjà dit, en cas d'exceptions ça devient difficile à debuger et en plus question lecture de code, ce n'est pas terrible. Alors ajouter des facilités pour des mauvaises habitudes, non. 2) void ce n'est pas this, ça ne tient pas debout. Pour les adeptes des chaînages vous n'avez qu'à retourner l'objet qu'il faut dans votre méthode. 3) Je vois vraiment pas le gain... C'est plus rapide? A quel point de vue? Relecture du code? Debugage? A part ajouter de l'incohérence dans le langage (void <> this), je vois pas trop ce que ça ferait... |
|
|
00
|
|
|
#82 |
|
Futur Membre du Club
![]() |
Dans une utilisation raisonné ça peut améliorer la lisibilité du code. Il faut se donner des limites et je pense que cette amélioration peut être forte avantageuse.
|
|
|
00
|
|
|
#83 |
|
Membre éclairé
![]() ![]() Inscription : décembre 2005 Messages : 315 ![]() |
|
|
|
00
|
|
|
#84 |
|
Futur Membre du Club
![]() |
En effet, peut-être que mon voisin ou l'intervenant ne saura pas respecter les règles de codage que je souhaites mettre en place dans mon service. Le rôle d'un chef de projet peut aussi passer par une revue de code hebdomadaire pour vérifier ces règles et faire des réajustements si nécessaire. Donc il me parait pertinent de pouvoir utiliser cette syntaxe qui, comme toutes les améliorations proposées dans V7 et dans les précédentes, ne sont pas obligatoirement utilisable. C'est une boite à outils qu'il faut réguler pour que la lisibilité et le debuggage du code soit cohérent pour tous les intervenants d'un projet.
|
|
|
00
|
|
|
#85 |
|
Nouveau Membre du Club
![]() Inscription : août 2005 Messages : 73 ![]() |
Je vois pas en quoi ça peut apporter de la lisibilité (... .maMethode vs obj.maMethode) avec ce qui existe déjà, désolé... Encore une fois les chainages devraient être évités. Ou comme j'ai déjà dit, fait un return this dans tes setters, si ça démange tant que ça de faire des chaînage. En tout cas pour moi c'est une très mauvaise idée qui n'ajouterait que de l'incohérence au niveau de la logique, void c'est n'est pas this!!!
|
|
|
00
|
|
|
#86 |
|
Membre éprouvé
![]() Inscription : avril 2006 Messages : 608 ![]() |
Contre.
void c'est void. Donc si le designer de la classe n'a pas prévu de retourner l'objet, il n'y a pas de raison de contourner ce choix. |
|
|
00
|
|
|
#87 |
|
Membre à l'essai
![]() Inscription : novembre 2007 Messages : 17 ![]() |
Exactement, void c'est void. Si on veut construire choses comme objet.met1().met2(). ..., on peut bien changer les types, et retourner 'this' a la fin de chacune method.
|
|
|
00
|
|
|
#88 | |
|
Membre actif
![]() Inscription : octobre 2002 Messages : 185 ![]() |
Résolument contre.
Je penses pas que ça soit plus clair, au contraire on a bien du mal à comprendre ce que fait une longue ligne d'instruction. C'est comme les phrases vaut mieux des courtes que des interminables. Sinon on en perd le début en les relisant. Et puis void c'est void, pourquoi changer son type ? Citation:
JHelp
__________________
Pour avoir une réponse efficace : 1) Soyez précis dans vos questions 2) Choisssez bien votre forum 3) Consultez la FAQ et la doc avant |
|
|
|
00
|
|
|
#89 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : mai 2008 Messages : 10 ![]() |
Contre aussi pour diverses raison évoquées précédemement mais aussi parce que ça limite l'extension suivante:
Vous faites une méthode qui renvoi void, et vous voulez changer la methode pour quelle renvoi true ou false par exemple. Vous allez casser tous les codes qui font du chainage. le .. me plait bien. sinon avoir un self plutot qu'un void dans la déclaration de la fonction: genre quel intéret: -pas besoin de faire le return this il est implicite: -la déclaration précise que le type renvoyé EST this et pas une copie. -l'objet renvoyé est du même type que l'objet d'origine, donc pas de problème de cast dans un hierarchie. prenons le cas actuel: Code :
|
||
|
|
00
|
|
|
#90 |
|
Invité régulier
![]() Zied Hamdi Inscription : juillet 2007 Messages : 10 ![]() |
Une méthode void peut très bien retourner l'instance meme. Ce code ne destabilise pas...
|
|
|
00
|
|
|
#91 | |
|
Membre Expert
![]() ![]() Inscription : juillet 2006 Messages : 765 ![]() |
Citation:
Je suppose que ce genre de proposition lui ferait plaisir.
__________________
Robusta Web Library : Clients RESTful open source pour Java, Android & GWT. API Simple et Productive. Avec style. |
|
|
|
00
|
|
|
#92 | |||
|
Membre Expert
![]() ![]() Chris CamelArchitecte de système d'information Inscription : novembre 2006 Messages : 1 242 ![]() |
Citation:
Code :
|
|||
|
|
00
|
|
|
#93 |
|
Membre du Club
![]() Inscription : août 2008 Messages : 47 ![]() |
D'accord, mais pas ecrit de cette façon. Comme je l'ai déjà lu dans d'autres postes, il faudrait une autre syntaxe. Donc j'vote pas.
|
|
|
00
|
|
|
#94 | ||
|
Membre du Club
![]() Développeur informatique Inscription : mai 2004 Messages : 49 ![]() |
Je suis très contre!
Cela pourrait prêter à confusion sur le type de retour d'une méthode. Je serais plutôt pour un emprunt au langage Pascal: Code :
|
||
|
|
00
|
|
|
#95 | ||
|
Membre à l'essai
![]() Inscription : mars 2008 Messages : 20 ![]() |
C'est vrai que le chaînage est un confort d'écriture.
Je ne suis pas pour le remplacement du type de retour. Comme certains l'on dit, ce n'est pas parce qu'une méthode retourne void que son action porte sur l'instance this. J'ai eu par exemple une méthode copyAttributs(Object o) qui permettait de faire de o un clone de this. Chaîner cette méthode retournerait this alors qu'on souhaiterait travailler sur le clone o. Et puis, c'est vrai qu'il vaut mieux prévoir cela dès la création de la classe (comme StringBuffer par exemple). Je suis pour l'utilisation d'un bloc with. Pour moi, cela devrait redéfinir l'instance implicite (qui actuellement est this) dans ce bloc. A l'intérieur du bloc, l'utilisation de this doit donc être explicite. C'est par exemple utile pour une IHM : Code :
|
||
|
|
00
|
Copyright © 2000-2013 - www.developpez.com