Partage
  • Partager sur Facebook
  • Partager sur Twitter

Définitions des termes "hook" et "handler"

Pouvez vous m'apporter des précisions ?

    17 janvier 2013 à 1:33:36

    Bonsoir à tous et à toutes,

    Celà fait maintenant quelques années que je fais de la programmation, et principalement axé WEB et depuis quelques temps je ne fais que de la programmation "sofware".

    J'utilise régulièrement l'évènementielle dans mes applications et je suis confornté aux termes "hook", "handle" ou encore "handler" sans vraiment connaître leur signification exacte.

    Pour moi, un évènement dispose de plusieurs "hooks", par exemple, j'ai une fenêtre, cette dernière dispose donc des "hooks" : Click, KeyPress, MouseMove etc.

    Ensuite, c'est à nous de lui donner les fonctions "handler" pour "handle" ces évènements, donc par exemple le "hook" "KeyPress" a pour "handler" une fonction nommé "OnKeyPress".

    Tout ceci est un exemple évidement pour illustrer mon hyposthèse sur les définitions que je souhaite peaufiner.

    Si vous pouvez m'apporter des précisions, j'en serais réconnaissant :)

    • Partager sur Facebook
    • Partager sur Twitter
      17 janvier 2013 à 3:22:19

      Un handler est tout simplement un gestionnaire, ça peut être un controlleur dans une architecture MVC, un singleton, un service etc... Perso j'utilise ce terme pour nommer des classes qui servent simplement à gérer quelque chose d'autre (par exemple un SoundManager qui va récupérer des événements pour ensuite jouer un son), après chacun fait comme il veut...

      Un hook désigne plutôt un point d'accroche, dans le web en tout cas, j'ai jamais vu ça dans du logiciel. Par exemple dans un CMS tu as en général différents hooks : header, left_column, right_column, footer... Et lorsque tu installes un module tu choisis à quel endroit il viendra se greffer, sur quel hook l'accrocher.

      • Partager sur Facebook
      • Partager sur Twitter
        17 janvier 2013 à 3:43:22

        Hmm je vois, si d'autres personnes ont leur précision à ajouter, je suis toujours prenant :)
        • Partager sur Facebook
        • Partager sur Twitter
          17 janvier 2013 à 9:53:41

          Salut,

          Il serait intéressant que tu précises le langage et l'environnement de développement que tu utilises. Les termes « hook » et « handler », de ce que j'en sais du moins, sont très utilisés dans le contexte de la programmation Windows. En général, le « handler » est effectivement le « gestionnaire », par exemple, « exception handler » est le gestionnaire d'exceptions.

          En outre, si tu avais des exemples de phrases ou de codes dans lesquels tu as rencontré ces mots, le contexte nous aiderait sans doute à te renseigner. :)

          Bonne journée/soirée, GuilOooo

          • Partager sur Facebook
          • Partager sur Twitter
          J'ai déménagé sur Zeste de savoir — Ex-manager des modérateurs.
            17 janvier 2013 à 15:19:37

            Bonjour,

            C'est dans de multiples langages que j'ai pu voir ces termes. Notament en C#.Net sous "EventHandler" et des termes plus précis comme "KeyPressEventHandler".
            Ensuite dans des bibliothèques privées au sein de mon école, pour ne pas citer la minilibX d'Epitech :p , nous avons des fonctions comme "mlx_hook()" qui permet d'associer une fonction de callback à un évènement à définir en paramètres de cette fonction. D'autres fonctions du même nom y sont implementés "mlx_loop_hook", "mlx_key_hook" etc.

            Comme je vous l'ai dit, je sais à quoi servent les fonctions, je sais à quoi correspont quoi, mais je voudrais vraiment connâitre la définition exacte afin de pas faire d'abus de langage et surtout enricher mes connaissances techniques :)

            En tout cas vos réponses m'ont été fortes utiles, et si d'autres personnes veulent continuer à préciser ces définitions, je suis toujours à l'écoute :)

            • Partager sur Facebook
            • Partager sur Twitter
              10 janvier 2020 à 18:12:31

              Hello,

              Définitions issues de mon expérience, car ce sont des concepts abstraits, libres a l'interprétation de chacun, mais grosso-modo, les développeurs s'entendent quand ils parlent de handlers ou de hooks.

              Un handler est une procédure permettant d'effectuer un traitement après un event (il y a ici une notion d'événementiel, par opposition a quelque-chose de cyclique qui s'appellerait plutôt un "process").

              Attention cependant, un handler n'est pas forcément une fonction/méthode, cela peut aussi être un module entier/une classe entière. Je resumerais donc en disant qu'un handler est une implémentation permettant de gérer quelque-chose d'événementiel.

              Un hook représentera plutôt une action que l'on vient intercaller dans un traitement déjà défini, pour faire du traitement "custom" dans quelque-chose de déjà établi. Le développeur implementera donc son hook pour ses propres besoins. En quelques sortes, cela laisse la possibilité au développeur d'étendre la fonctionnalité déjà implémentée en "greffant" son code custom au milieu de celle-ci.

              Exemple: une fonction sample() convertit un signal audio depuis un ADC et te retourne un échantillon. Tu peux avoir une fonction filteringHook() vide par défaut mais que tu peux implementer the permettant de traiter le sample avant que sample() ne te le retourne.

              • Partager sur Facebook
              • Partager sur Twitter

              Définitions des termes "hook" et "handler"

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown