WikiDer > Dispetcherlik jadvali
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