Interfeyslar reja: I. Kirish II. Asosiy qism


Kontravariant interfeyslar



Download 49,46 Kb.
bet5/6
Sana18.02.2022
Hajmi49,46 Kb.
#452229
1   2   3   4   5   6
Bog'liq
interfeys

Kontravariant interfeyslar Kalit so'zni foydalanish uchun contravariant interfeysi zarurligini yaratish uchun ham . Misol uchun, bir xil Hisob va DepositAccount sinflarini oling va quyidagi turlarni aniqlang:
interface ITransaction
{
void DoOperation(T account, int sum);
}
class Transaction : ITransaction where T : Account
{
public void DoOperation(T account, int sum)
{
account.DoTransfer(sum);
}
}
U shartli bank operatsiyasini ifodalovchi ITransaction interfeysini belgilaydi. Kalit so'z bilan bir interfeysi belgilash interfeysi contravariant ekanligini ko'rsatadi. Interfeys DoOperation usulini belgilaydi, u ba'zi hisoblarni oladi va unda operatsiyani bajaradi.
Transaction klassi ushbu interfeysni amalga oshiradi va uning DoOperation usulini amalga oshiradi.
Keling, ushbu turlarni dasturda qo'llaymiz:
static void Main(string[] args)
{
IBank depositBank = new Bank();
Account acc1 = depositBank.CreateAccount(34);
IBank ordinaryBank = new Bank();
// или так
// IBank ordinaryBank = depositBank;
Account acc2 = ordinaryBank.CreateAccount(45);
Console.Read();
}
ITransaction interfeysi kalit so'z bilan umumiy parametrdan foydalanganligi sababli, u kontravariantdir in, shuning uchun kodda biz ob'ektni Transactionturiga o'tkazishimiz mumkin ITransaction:
ITransaction depAccTransaction = new Transaction();
Kalit so'z bo'lsa ham u ishlatilgan emas, keyin, biz bir ruh kabi amalga oshirish imkoniyatiga ega bo'lmaydi. Ya'ni, umumiyroq turdagi interfeys ob'ekti aniqroq turdagi interfeys ob'ektiga o'tkaziladi.
Kontravariant interfeysni yaratishda shuni yodda tutingki, kontravariant turdagi umumiy parametr faqat usul argumentlariga qo'llanilishi mumkin, lekin qaytarish turlari sifatida ishlatiladigan argumentlarga qo'llanilmaydi.
Statik ravishda terilgan tillarda konteyner sinflarini yaratishda har bir ma'lumot turi uchun maxsus dasturlarni yozish noqulay, ayniqsa har bir ma'lumot turi uchun kod deyarli bir xil bo'lsa. Masalan, C ++ da kodning takrorlanishini sinf shablonini aniqlash orqali chetlab o'tish mumkin:
shablon sinf Ro'yxat { // Sinf mazmuni.};Ro'yxat jonivorlar ro'yxati;Ro'yxat avtomobillar ro'yxati;
Yuqorida, T ro'yxat tuzilganda ko'rsatilgan har qanday tur uchun joy to'ldiruvchidir. Odatda "T-konteynerlar" andozalar, kabi ba'zi shartnomalar mavjud bo'lganda, sinfni turli xil ma'lumotlar turlari bilan qayta ishlatishga ruxsat bering subtiplar va imzo saqlanadi. Ushbu saxiylik mexanizmi bilan aralashmaslik kerak inklyuziya polimorfizmi, bu algoritmik almashinadigan kichik sinflardan foydalanish: masalan, turdagi ob'ektlar ro'yxati Moving_Object tipdagi narsalarni o'z ichiga olgan Hayvon va Avtomobil. Shablonlardan, kabi bo'lgani kabi, turga bog'liq bo'lmagan funktsiyalar uchun ham foydalanish mumkin lmashtirish quyida keltirilgan misol:
// "&" parametrlarga mos yozuvlar orqali o'tadishablon bekor Almashtirish(T& a, T& b) { T temp = b; b = a; a = temp;}std::mag'lubiyat Salom ="Dunyo!";std::mag'lubiyat dunyo="Salom, ";Almashtirish(dunyo, Salom);std::cout << Salom << dunyo << std::endl; // Chiqish "Salom, dunyo!".
C ++ shablon Yuqorida keltirilgan konstruktsiya keng keltirilgan[iqtibos kerak] dasturchilar va til dizaynerlari o'rtasida tushunchani ommalashtirgan va ko'plab umumiy dasturiy idiomalarni qo'llab-quvvatlaydigan saxiylik konstruktsiyasi sifatida. D dasturlash tili, shuningdek, C ++ pretsedentiga asoslangan, ammo soddalashtirilgan sintaksisga asoslangan to'liq umumiy shablonlarni taqdim etadi. Java dasturlash tili kiritilganidan beri C ++ ga asoslangan sintaktik ravishda genericity imkoniyatlarini taqdim etdi J2SE 5.0.
C # 2.0, Oksigen 1.5 (Chrome nomi bilan ham tanilgan) va Visual Basic .NET 2005 da mavjud bo'lgan genericlarni qo'llab-quvvatlashidan foydalanadigan konstruktsiyalar mavjud Microsoft .NET Framework 2.0 versiyasidan beri.

Ada shahridagi umumiy narsalar


Ada 1977-1980 yillarda birinchi marta ishlab chiqilganidan beri umumiy narsalarga ega. Standart kutubxona ko'plab xizmatlarni ko'rsatish uchun umumiy vositalardan foydalanadi. Ada 2005 standart kutubxonaga keng qamrovli umumiy konteyner kutubxonasini qo'shadi, bu C ++ dan ilhomlangan standart shablon kutubxonasi.
A umumiy birlik bir yoki bir nechtasini oladigan paket yoki subprogramdir umumiy rasmiy parametrlar.
A umumiy rasmiy parameter qiymati, o'zgaruvchisi, doimiysi, turi, pastki dasturi yoki hattoki boshqa, belgilangan, umumiy birlikning misoli. Umumiy rasmiy turlar uchun sintaksis diskret, suzuvchi nuqta, sobit nuqta, kirish (ko'rsatgich) turlari va boshqalarni ajratib turadi. Ba'zi rasmiy parametrlar standart qiymatlarga ega bo'lishi mumkin.
Kimga tayyorlamoq umumiy birlik, dasturchi o'tadi haqiqiy har bir rasmiy uchun parametrlar. Keyinchalik umumiy misol har qanday birlik kabi o'zini tutadi. Da umumiy birliklarni yaratish mumkin ish vaqti, masalan, pastadir ichida.



Download 49,46 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish