(
)
C'est pas très propre, je trouve :
- inverserDetection() ne dit pas explicitement quel est le résulat (il faut aller lire la doc pour savoir quel est le comportement "normal", et en déduire le comportement opposé)
- si j'appelle une seconde fois inverserDetection(), que se passe-t-il ?
* si ça réinverse, c'est risqué : impossible de savoir le résultat sans connaître l'état précédent
* si ça n'a pas d'effet, c'est pas très logique du point de vue conceptuel : on peut switcher dans un sens, mais on ne peut pas switcher dans le sens inverse...
-> mieux vaut passer la polarité du signal en paramètre au constructeur. Si tu ne peux pas, il faut que si tu n'as pas appelé préalablement definirPolarite(), Controler() lance une exception, comme ça tu différencies le cas "j'ai oublié d'appeler la fonction" de "j'utilise la polarité normale".
(cette code-review de démonstration gratuite vous a été offerte par Zerosquare
)