anig - TAZA

you welcome to ANIG
anig - TAZA

association nationale d'informatique et gestion


    Édition de liens dynamique (Dynamic Binding)

    Partagez
    avatar
    Admin
    Admin

    Messages : 39
    Points : 136
    Date d'inscription : 24/03/2009

    Édition de liens dynamique (Dynamic Binding)

    Message  Admin le Mar 31 Mar - 17:10

    Une différence cruciale entre appel de fonction et message est qu'une fonction et ces arguments sont reliés dans le code dés la compilation, alors qu'un message et le receveur ne le sont pas avant l'exécution, et l'envoi du message.

    Ainsi, la méthode exacte qui sera invoqué en réponse à un message est déterminé à l'exécution, et non plus quand le code est compilé. La méthode a exécuter dépend du receveur, hors le type de celui-ci n'est connu qu'à la réception du message (typage dynamique), mais pas à la compilation. Ainsi différents receveur peuvent avoir différentes implémentations pour le même sélecteur (polymorphisme). L'information que le compilateur ne connaît pas est fournie à l'exécution par l'objet receveur

    Quand un message est envoyé, une routine du noyau d'exécution cherche dans le receveur une méthode ayant le bon sélecteur (selector), défini dans le message, et "appel" la routine avec les arguments définis dans le message, (voir "la gestion des messages" plus bas).

    L'édition de liens dynamique et le polymorphisme donne à la programmation objet sa souplesse et sa puissance. On obtient des résultats variés non plus en changeant le message mais en changeant le receveur.

    Ceci pouvant être fait dynamiquement à l'exécution. Le receveur peut être choisi "à la volé" et ainsi dépendre d'actions extérieur comme les commandes utilisateur. Dans le générateur d'application NeXT, l'utilisateur va déterminé quel sont les objets qui vont recevoir les ordres copier, couper, coller du menu. Les différents objets réagirons différemment à ces ordres. Comme les méthodes de doivent pas être intégrée à la compilation, les méthodes qui utilisent ces ordres n'ont pas à se concerner de leur existence. De plus chaque application peut définir un comportement spécifique au message copier:.

      La date/heure actuelle est Dim 18 Nov - 4:47