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


Download 66.54 Kb.
bet6/8
Sana03.06.2024
Hajmi66.54 Kb.
#1856008
1   2   3   4   5   6   7   8
Bog'liq
Mavzu Kommutatsiya jarayonlari va protokollariga oid iso ip-rm -fayllar.org

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 66.54 Kb.

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