Bonjour
Je viens ici car j'ai un soucis de conception. J'ai en effet 2 objets A et B indépendants mais j'ai à un certain moment besoin de faire exécuter une action par l'objet B quand un certain évènement survient à l'objet A.
J'ai donc 2 possibilités
- je peux tout d'abord créer une méthode "action()" dans l'objet B et l'appeler depuis l'objet A quand l'évènement arrive. C'est de la programmation objet classique et tout à fait faisable puisque les deux objets se connaissent.
- je peux aussi connecter dans l'objet B un SLOT qui va lancer l'action quand l'objet A émet un certain signal. Ensuite, quand l'objet A reçoit l'évènement, il n'a qu'à émettre ce signal
J'ai testé les 2 façons de faire et ça fonctionne dans tous les cas. Maintenant est-ce que certains auraient des conseils sur le choix d'une ou de l'autre ? Le mécanisme signal/slot est tentant mais il a été conçu au départ pour offrir une certaine indépendance. Un signal peut être connecté à plusieurs slots distincts et un même slot peut être activé par plusieurs signaux distincts. Or ici ce n'est pas le cas car l'évènement de l'objet A ne doit faire intéragir que B et seul cet évènement de A doit produire l'action de B. Donc en fait dans mon esprit je me dis que je fais appel à un bien beau mécanisme pour bien peu de chose.
Donc voilà mon dilemne.
Merci de votre attention.
Partager