Concept

Dispatch table

Résumé
In computer science, a dispatch table is a table of pointers or memory addresses to functions or methods. Use of such a table is a common technique when implementing late binding in object-oriented programming. The following shows one way to implement a dispatch table in Perl, using a hash to store references to code (also known as function pointers).

Define the table using one anonymous code-ref and one named code-ref

my %dispatch = ( "-h" => sub { return "hello\n"; }, "-g" => &say_goodbye ); sub say_goodbye { return "goodbye\n"; }

Fetch the code ref from the table, and invoke it

my sub=sub = dispatch{ARGV[0]}; print sub ? $sub->() : "unknown argument\n"; Running this Perl program as perl greet -h will produce "hello", and running it as perl greet -g will produce "goodbye". Following is a demo of implementing dispatch table in JavaScript: var thingsWeCanDo = { doThisThing : function() { /* behavior / }, doThatThing : function() { / behavior / }, doThisOtherThing : function() { / behavior / }, default : function() { / behavior */ } }; var doSomething = function(doWhat) { var thingToDo = thingsWeCanDo.hasOwnProperty(doWhat) ? doWhat : "default" thingsWeCanDothingToDo; } Virtual method table In object-oriented programming languages that support virtual methods, the compiler will automatically create a dispatch table for each object of a class containing virtual methods. This table is called a virtual method table or vtable, and every call to a virtual method is dispatched through the vtable.
À propos de ce résultat
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.