fbpx
Wikipedia

Dispatch table

In computer science, a dispatch table is a table of pointers or memory addresses to functions or methods.[1] Use of such a table is a common technique when implementing late binding in object-oriented programming.

Perl implementation edit

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 = $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".

JavaScript implementation edit

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"  thingsWeCanDo[thingToDo](); } 

Virtual method tables edit

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.

See also edit

References edit

  1. ^ Goldfuss, Alice. "Function Dispatch Tables in C". alicegoldfuss.com. Retrieved 23 January 2021.

dispatch, table, computer, science, dispatch, table, table, pointers, memory, addresses, functions, methods, such, table, common, technique, when, implementing, late, binding, object, oriented, programming, contents, perl, implementation, javascript, implement. In computer science a dispatch table is a table of pointers or memory addresses to functions or methods 1 Use of such a table is a common technique when implementing late binding in object oriented programming Contents 1 Perl implementation 2 JavaScript implementation 3 Virtual method tables 4 See also 5 ReferencesPerl implementation editThe 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 gt sub return hello n g gt amp say goodbye sub say goodbye return goodbye n Fetch the code ref from the table and invoke it my sub dispatch ARGV 0 print sub sub gt unknown argument n Running this Perl program as perl greet h will produce hello and running it as perl greet g will produce goodbye JavaScript implementation editFollowing 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 thingsWeCanDo thingToDo Virtual method tables editMain article 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 See also editBranch tableReferences edit Goldfuss Alice Function Dispatch Tables in C alicegoldfuss com Retrieved 23 January 2021 Diomidis Spinellis 2003 Code Reading The Open Source Perspective Boston MA Addison Wesley ISBN 0 201 79940 5 Retrieved from https en wikipedia org w index php title Dispatch table amp oldid 1114563069, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.