Bonsoir à tous,
Pour certains d'entre vous, ma question aurait plus sa place dans le forum de conception, les Signals / Slots étant l'implémentation du design pattern Observateur. Pourtant, mon "problème" se situe purement au niveau de l'implémentation. Je m'explique :
En train de découvrir progressivement Qt, je suis tombé sur le mécanisme de signal/slot qu'après quelques expérimentations je trouve extrêmement puissant.
Au fur et à mesure de l'implémentation des méthodes de mes classes, je me rends compte que je me pose systématiquement la même question pour chaque méthode publique qui renvoie void : même si je ne l'ai pas prévu conceptuellement, pourquoi je ne l'implémenterais pas sous forme de slot ? Elle restera appelable comme une méthode classique, ça me coûte simplement de déplacer sa déclaration de la zone "public:" à la zone "public slots:" (et d'hériter de QObject, ce qui ne me dérange pas), pour y gagner la possibilité de connecter n'importe quel signal assez facilement (notamment ceux générés par les widgets graphiques).
Les seuls points faibles que je vois sont que ça me bloquerait pour l'héritage multiple (qui m'empêcherait de dériver de plusieurs classes elles-mêmes héritant de QObjet), et que les méthodes renvoyant autre chose que void ne sont pas éligibles.
Dans la mesure où je n'utilise pas l'héritage multiple pour ce projet, et comme la perte de performance semble négligeable, ça me parait un peu un outil "magique", qu'il est tentant d'utiliser systématiquement. Comme je sais que les outils parfaits n'existent pas, quels sont ses autres points faibles que je ne vois pas, et dans quels cas n'utiliseriez-vous pas ce mécanisme ?
Merci.
Partager