4-ma’ruza mavzu: konteynerlarning adapterlari. Reja



Yüklə 101,97 Kb.
səhifə7/9
tarix13.03.2023
ölçüsü101,97 Kb.
#87657
1   2   3   4   5   6   7   8   9
7mR4KWxfJ8qoGNevKKGw6M3I810z9dkwz8bcQr7T

Standart MLda funktorlar. ML dagi funksiya interfeyslarning umumiy tadbiqlari mavjud va OYD jihatidan shakllantirish qiyin masallardan hisoblanadi. ML standart jihatidan funktorlar ML modul tizimining bir qismidir va ular tuzilmalarni yaratishga imkon beradi. Masalan, plagin tizimini yozish masalasini olaylik. Aytaylik barcha plaginlar soddaroq bo‘lishi uchun, faqat perform funksiyasini o‘z ichiga oladigan zarur interfeysini amalga oshirish kerak bo‘lsin. MLda avval plaginlar uchun maxsus tasdiqlovchi (imzolovchini)ni yaratish zarur.

Signature Plugin = sig
val perform: unit -> unit end;

Plaginlar uchun tasdiqlovchi interfeysni aniqladik, ikkita plaginni, aytaylik, Loudplugin va Silentpluginni tuzilmalar orqali amalga oshirishimiz mumkin.
LoudPlugin ni amalga oshirish:

structure LoudPlugin :> Plugin = struct
fun perform() = print"KATTA HARFLAR!\n" end;

Silentplugin ni amalga oshirish:



structure SilentPlugin :> Plugin = struct fun perform () = print "kichik harlar\n"
end;

Endi funktorlarga yaqinlashamiz. ML dagi funktorlar tuzilmalarni argument sifatida qabul qilishadi, shuning uchun Plugin argument sifatida berilgan.



functor Performer(P : Plugin) = struct fun job () = P.perform ()
end;

Bu funktor Plugin ni P argument sifatida qabul qiladi va P plaginni perform funksiyasini chaqiradigan job funksiyasi uchun ishlatadi.
Performer funktorni ishlatamiz (Funktor tuzilma qaytarishini bilamiz).


structure LoudPerformer = Performer(LoudPlugin); structure SilentPerformer = Performer(SilentPlugin);

LoudPerformer.job (); SilentPerformer.job ();



Standard ML uchun bk oddiy misol edi. Ammo chuqurroq o‘rganish uchun S tilini ham bilish talab qilinadi.



Yüklə 101,97 Kb.

Dostları ilə paylaş:
1   2   3   4   5   6   7   8   9




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin