Hey,
j'ai pris l'habitude d'utiliser les getters & setters à l'intérieure même de la classe... je trouve cela plus "propre".
Bonne ou mauvaise habitude ? Ou tout le monde s'en fout ?
Hey,
j'ai pris l'habitude d'utiliser les getters & setters à l'intérieure même de la classe... je trouve cela plus "propre".
Bonne ou mauvaise habitude ? Ou tout le monde s'en fout ?
Hello,
Ca doit compliquer la lecture du code, non?
Moi je trouve pas en fait
Ca vient directement de l'IDE en fait mais les getter/setter est en gras, donc je trouve ça plus lisible.
edit: fucking touche tab
Je ne sais pas si ça fait réellement partie des "bonnes pratiques de codage", mais je te soutiens dans ta démarche: j'ai pris l'habitude de faire de même.
Je trouve cela plus sécurisé. Je mets toujours l'attribut en "private", et je n'y accède que par des accesseurs.
En développement, je trouve que cela a un gros avantage: sous Eclipse, il suffit de faire un "call hierarchy" sur les accesseurs pour savoir quelle méthode lit ou écrit l'attribut en question. Lorsqu'on a un problème d'incohérence sur cet attribut, on identifie ainsi beaucoup plus facilement qui peut en être responsable.
C'est plutot une bonne pratique, ainsi si ton setter verifie l'integrite de la variable par exemple, cela sera fait aussi bien en interne qu'en externe et en cas de modification de cette verif tu n'as a la faire qu'a un seul endroit.
Bulbo
Totalement d'accord ! C'est vrai que ça "alourdit" un peu le code, mais pas tant que ça. Et ça permet vraiment de centraliser des règles de validation ou de la gestion d'événements ou encore d'autres choses dont tu n'as pas forcément besoin de suite mais dont le besoin pourrait apparaître ultérieurement
C'est bien comme ça si tu as besoin de modifier l'affectation, tu ne le fais qu'une fois.
Par contre, il faut faire attention si tu fais des objets non finaux, les méthodes get et set peuvent être redéfinies dans des sous-classes...
Se méfier tout de même des appels récursifs : un accesseur fait appel à une méthode qui elle même fait appel à l'accesseur en question, et on se retrouve avec un dépassement de pile.
il y a aussi possibilite d'effets de bords ennuyeux si les getters/setters s'appellent entre eux.Envoyé par ®om
J'ai eu un cas d'attributs qui s'excluaient l'un l'autre, genre si l'un est present l'autre doit etre null et inversement. Si tu fais ca dans chacun des setters bah tu te retrouves avec une belle recursion infinie pour peu que tu testes pas si l'argument du setter est null ou pas.
Mais en gros c'est toujours mieux d'utiliser les get/set si ils existent, pour la declaration en 'final', bof je suis pas adepte, surtout qu'en general l'attribut etant declare en private, le final n'appporte pas grand chose de plus.
Bulbo
Partager