Mavzu: Kommutatsiya jarayonlari va protokollariga oid iso/ip-rm modeli


Download 0.61 Mb.
Pdf ko'rish
bet6/8
Sana27.03.2023
Hajmi0.61 Mb.
#1300436
1   2   3   4   5   6   7   8
Bog'liq
TDS MI 1

Inkapsulyattsiyalash - ma’lumotlarning va shu ma’lumotlar ustida ish olib 
boradigan kodlarning bitta ob’ktda birlashtirilishidir. OMD atamachiligida 
ma’lumotlar ob’kt ma’lumotlari a’zolari deb, kodlar ob’ktli metodlar yoki 
funktsiya-a’zolar deb ataladi. 
Inkapsulyatsiyalash ob’ktni tashqi muxitdan maksimal darajada ajratish imkonini 
beradi. Bu ishlab chiqilayotgan dasturlarning ishonchliligini sezilarli darajada 
oshiradi, chunki ob’ktda mujassamlangan (lokallashtirilgan) funktsiyalar dastur 
bilan nisbatan kam xajmdagi ma’lumotlarni almashinadi, buning ustiga ushbu 
ma’lumotlarning miqdori va turi odatda sinchkovlik bilan nazorat qilinadi. 
Natijada ob’ktda inkapsulalangan funktsiyalar va ma’lumotlarning almashtirib 
qo’yilishi yoki o’zgartirilishi umuman olganda dastur uchun yaxshi kuzatib 
bo’lmaydigan oqibatlarni olib kelmaydi. 
Inkapsulyatsiyalashning yana bir muxim natijalaridan biri shundaki, bunda 
ob’ktlar 
almashinuvi
, ularning bir dasturdan ikkinchisiga o’tkazilishi 
osonlashadi. OMD da inkapsulyattsiya tamoyilining soddaligi va qulayligi 
dasturchilarni C++Builder tarkibiga kiruvchi Vizual Komponentlar 
kutubxonasini kengaytirishga olib keladi. 
2.
Klasslar, komponentalar va ob’ktlar 
Klass jismoniy moxiyatga ega emas, tuzilmaning e’lon qilinishi uning eng yaqin 
analogiyasidir. Klass ob’ktni yaratish uchun qo’llangandagina, xotira ajralib 
chiqadi. Bu jarayon xam klass nusxasini yaratish deb ataladi. 
C++tilining xar qanday ob’kti bir xil atributlarga, shuningdek ushbu klassning 
boshqa ob’ktlari bilan funkttsionallikka ega. O’z klasslarini yaaratish xamda 
ushbu klasslar ob’ktlarining xulq-atvori uchun to’liq mas’uliyat dasturchi 
zimmasiga yuklanadi. Biron-bir muxitda ishlar ekan, dasturchi standart 
klasslarning kattagina kutubxonasi (masalan, C++Builder Vizual Komponentlar 
Kutubxonasi) ga kirish xuquqiga ega bo’ladi. 
Odatda, ob’kt qandaydir unikal xolatda mavjud bo’lib, bu xolat ob’kt 
atributlarining joriy qiymatlari bilan belgilanadi. Ob’kt klassining funktsionalligi 


ushbu klass ekzempliyari (nusxasi) ustida o’tkaziladigan operattsiyalar bilan 
belgilanadi. 
C++tilida klassni aniqlash uchun, ma’lumotlar a’zolari ustida ish olib boradigan 
xamda ob’ktlarning xulq-atvorini belgilaydigan ma’lumotlar a’zolari va 
metodlarini inkapsulyattsiya talab qilinadi. YUqoridagi misolimizga qaytib, 
shuni ta’kidlab o’tamizki, «Casio» soatining suyuuq kristalli displeyi ushbu 
ob’ktning ma’lumotlar a’zosi bo’ladi, boshqarish tugmachaliri esa ob’ktli 
metodlar bo’ladi. Soat tugmachalarini bosib, displeyda vaqtni o’rnatish 
ishlarini 
olib borish mumkin
, ya’ni OMD atamalarini qo’llaydigan bo’lsak, metodlar, 
ma’lumotlar a’zolarini o’zgartirib, ob’kt xolatini modifikattsiya qiladi. 
C++Builder komponentlar tushunchasini xam kiritadi. Komponentlar - maxsus 
klasslar bo’lib, ularning xususiyatlari ob’ktlar atributlarini tashkil qiladi, ularning 
metodlari esa komponentli klasslarning tegishli nusxalari ustidagi 
operattsiyalarni amalga oshiradi. Metod tushunchasi odatda komponentli klasslar 
tarkibida qo’llanadi va tashqi tomondan oddiy klassning funktsiya-a’zo 
atamasidan farq qilmaydi. C++Builder tili komponentlarning turi va funktsional 
xulq-atvorini nafaqat metodlar yordamida, balki komponentlar klasslarigagina 
xos bo’lgan xususiyatlar vositasida xam manipuliyattsiya qilish imkonini beradi. 
C++Builder muxitida ishlar ekansiz, siz ilovani loyixalash bosqichida xam, uni 
bajarish bosqichida xam komponentli ob’kt ustida ishlash (manipuliyattsiya 
qilish) mumkin ekanini tushunib yetishingiz ayon. 
Komponentlar xususiyatlari bu ma’ulmotlar a’zolarining kengayishidir. Garchi 
ular ma’lumotlarni o’z xollaricha saqlamasalarda, biroq ob’kt ma’lumotlari 
a’zolariga kirish xuquqini ta’minlaydilar. Xususiyatlarni e’lon qilishda 
C++Builder kalit-so’zdan foydalanadi. Voqealar yordamida komponenta o’ziga 
qandaydir avvaldan belgilangan ta’sir ko’rsatilganini foydalanuvchiga ma’lum 
qiladi. C++Builder muxitida ishlab chiqilayotgan dasturlardagi metodlar asosan 
ma’lum voqealarning yuzaga kelishida dastur reaktsiyasini ularga nisabatan ishga 
soladigan voqealarning qayta ishlagichlarida qo’llanadi. Windows operatsion 
tizimidagi voqealar va ma’lumotlardagi qandaydir o’xshashlikni payqab olish 
qiyin emas. Bu yerdagi oddiy tipik voqealar klaviaturadagi tugmacha yoki 
klavishalarni bosishdan iborat. Komponentalar o’z xususiyatlari, metodlari va 
voqealarini inkapsuyattsiyalaybiladi. 
Bir 
qarashda
, komponentalar C++tilining boshqa ob’ktli klasslaridan, bir qator 
xususiyatlarni xisobga olmaganda, xech bir farq qilmaydi. Bu xususiyatlar 
orasida xozircha quyidagilarni ko’rsatib o’tamiz: 
• 
Komponentalarning ko’pchiligi interfeysning foydalanuvchi bilan 


boshqarish elementi bo’lib, ularning ayrimlari juda murakkab xulq-atvorga 
ega. 
• 
Barcha komponentalar bitta umumiy ajdod-klass (TComponent) ning 
bevosita yoki bilvosita avlodlaridirlar. 
• 
Komponentalar odatda bevosita qo’llanadi, ya’ni ularning xususiyatlari 
ustida ish olib boriladi (manipulyattsiyalar o’tkaziladi); ularning o’zlari 
yangi tarmoq klasslar (klasschalar) qurish uchun bazaviy klasslar sifatida 
xizmat qila olmaydi. 
• 
Komponentalar faqat new operatori yordamida uyumning dinamik 
xotirasida joylashtiriladi, oddiy klasslar ob’ktlarida bo’lganidek, stekda 
emas. 
• 
Kopmonentalar xususiyatlari dinamik turlar identifikattsiyasini o’z ichiga 
oladi. 
• 
Komponentalarni komponentalar palitrasiga qo’shish va shundan so’ng 
C++Builder vizual ishlanmasining integrallashgan muxitiga tegishli 
shakllar muxarriri vositasida ular ustida ishlash mumkin. 
OMD ob’ktlarning o’zaro aloqasini talablarni biron-bir ob’ktga yoki ob’ktlararo 
yuborish sifatida talqin etadi. Talabni olgan ob’kt bunga tegishli usulni chaqirish 
bilan javob beradi. OMD ning SmallTalk kabi boshqa tillaridan farqli o’laroq, 
C++tili «talab» tushunchasidan foydalanishni qo’llab-quvvatlamaydi. Talab - 
ob’kt ustida qilinayotgan ish, metod esa - kelib tushgan talabga ob’ktning javobi. 
YAqinroq olib qaralsa, metod - klass ta’rifiga kiritilgan oddiy funktsiya-a’zo. 
Metodni chaqirib olish uchun, ushbu klass kontekstida yoki biron-bir voqeaning 
qayta ishlagichida funktsiya nomini ko’rsatish kerak. 
Aynan metodning klass bilan yashirin aloqasi uni oddiy funktsiya tushunchasidan 
ajratib turadi. Metodni bajarish paytida, u o’z klassining barcha ma’lumotlariga 
kirish xuquqiga ega bo’ladi, garchi ushbu klass nomining ochiq-oydin 
spetsifikattsiyasini talab qilmasa xam. Bu ish beistisno xar bir 
metodga yashirin 
parametrga
, ya’ni klass nusxasi (ekzempliyari) ga o’zgaruvchan ko’rsatkichni 
berish orqali ta’minlanadi. Xar gal metod klass ma’lumotlari a’zolariga murojaat 
qilganda, kompiliyator ko’rsatkichidan foydalanadigan maxsus kodni generatsiya 
qiladi. 



Download 0.61 Mb.

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




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