Mavzu: Kommutatsiya jarayonlari va protokollariga oid iso/ip-rm modeli
Download 0.61 Mb. Pdf ko'rish
|
TDS MI 1
- Bu sahifa navigatsiya:
- Klasslar, komponentalar va ob’ktlar
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. |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling