C'est une mauvaise pratique de passer l'objet courant dans un appel de méthode s'il existe des alternatives moins complexes pour obtenir le même comportement.
Par définition, une association bidirectionnelle est créée dès qu'elle thisest passée d'un objet à un autre.
Pour citer Refactoring, par Martin Fowler:
Changer l'association bidirectionnelle en unidirectionnel (200)
Les associations bidirectionnelles sont utiles, mais elles ont un prix. Le prix est la complexité supplémentaire de maintenir les liens bidirectionnels et de s'assurer que les objets sont correctement créés et supprimés. Les associations bidirectionnelles ne sont pas naturelles pour de nombreux programmeurs, elles sont donc souvent une source d'erreurs
...
Vous devez utiliser des associations bidirectionnelles lorsque vous en avez besoin, mais pas lorsque vous ne le faites pas. Dès que vous voyez qu'une association bidirectionnelle ne tire plus son poids, laissez tomber l'extrémité inutile.
Donc, théoriquement, nous devrions entendre la sonnette d'alarme lorsque nous constatons que nous devons passer thiset essayer vraiment de penser à d'autres moyens de résoudre le problème en cours. Il y a, bien sûr, des moments où, en dernier ressort, il est logique de le faire.
De plus, il est souvent nécessaire de corrompre temporairement votre conception, en faisant des «mauvaises pratiques», lors d'une refactorisation à plus long terme de votre code pour une amélioration globale. (Un pas en arrière, deux pas en avant).
Dans la pratique , j'ai trouvé mon code a amélioré massivement en évitant des liens bidirectionnels comme la peste.