WikiDer > Dispetcherlik jadvali

Dispatch table

Yilda Kompyuter fanlari, a jo'natish jadvali ning jadvali ko'rsatgichlar funktsiyalarga yoki usullari. Bunday jadvaldan foydalanish - bu amalga oshirishda keng tarqalgan usul kech majburiy yilda ob'ektga yo'naltirilgan dasturlash.

Perlni amalga oshirish

Quyida dispetcherlik jadvalini amalga oshirishning bir usuli ko'rsatilgan Perlyordamida xash kodga havolalarni saqlash (shuningdek, funktsiya ko'rsatgichlari).

# Jadvalni bitta noma'lum kod-ref va bitta kod-ref yordamida aniqlangmening % yuborish = (    "-h" => sub {  qaytish "salom  n"; },    "-g" => \&xayr); sub xayr {    qaytish "alvido  n";} # Kodni jadvaldan oling va uni chaqiringmening $ sub = $ jo'natish{$ ARGV[0]};chop etish $ sub ? $ sub->() : "noma'lum argument  n";

Ushbu Perl dasturini quyidagicha ishga tushirish perl salomlash "salom" ishlab chiqaradi va uni xuddi shunday ishlaydi perl salomlashish -g "xayr" ishlab chiqaradi.

JavaScript-ni amalga oshirish

Quyida JavaScript-da dispetcherlik jadvalini tatbiq etish demosi keltirilgan:

var ThingsWeCanDo = {    buni qilish      : funktsiya() { / * xatti-harakatlar * / },    doThatThing      : funktsiya() { / * xatti-harakatlar * / },    buni amalga oshirish : funktsiya() { / * xatti-harakatlar * / },    sukut bo'yicha          : funktsiya() { / * xatti-harakatlar * / }};var biror narsa qilmoq = funktsiya(nima qilish) {    var thingToDo = ThingsWeCanDo.hasOwnProperty(nima qilish) ? nima qilish : "standart"    ThingsWeCanDo[thingToDo]();}

Virtual usul jadvallari

Yilda ob'ektga yo'naltirilgan dasturlash tillari bu qo'llab-quvvatlash virtual usullar, kompilyator avtomatik ravishda a-ning har bir ob'ekti uchun dispetcherlik jadvalini yaratadi sinf virtual usullarni o'z ichiga olgan. Ushbu jadval a deb nomlanadi virtual usul jadvali yoki vtable, va virtual usulga har bir qo'ng'iroq vtable orqali yuboriladi.

Shuningdek qarang

Adabiyotlar

  • Diomidis Spinellis (2003). Kod o'qish: Ochiq manbalar istiqboli. Boston, MA: Addison-Uesli. ISBN 0-201-79940-5